{
  "schema": "open-courses-cross-programme/1",
  "interface_languages": [
    "en",
    "id"
  ],
  "programme_identity": "Open Courses",
  "production_provenance": {
    "schema": "bounded-ai-production-provenance/1",
    "scope": "New cross-programme dependency adapter and English/Indonesian navigation integration, 2026-10-02; not the historical corpus translations",
    "model": "gpt-6.1-sol",
    "model_display": "OpenAI Codex — GPT-6.1 Sol",
    "effort": "ultra",
    "evidence": {
      "kind": "current_turn_context_event",
      "turn_id": "01a0fa0a-da5d-7cc2-99f3-6e06d45c14cd",
      "observed_event_utc": "2026-10-02T00:59:48.882Z",
      "bounded_read": "Last 4,194,304 bytes of this task's own known rollout; only turn_context model/effort/turn identifiers extracted",
      "configured_database_model": "gpt-6-astra",
      "configured_database_effort": "ultra",
      "discrepancy_resolution": "Use the actual current turn_context, not the different configured database default, for the new work's disclosure. No configuration was changed."
    },
    "human_review_claimed": false,
    "prior_source_author_credits_preserved": true,
    "official_configuration_reference": "https://learn.chatgpt.com/docs/config-file/config-reference"
  },
  "policy": {
    "native_ids_preserved": true,
    "zero_copy_content": true,
    "core_and_advanced_one_programme": true,
    "course_route_is_not_proof_provider": true,
    "english_interface_does_not_imply_indonesian_advanced_translation": true,
    "external_citation_does_not_close_internal_proof_dependency": true,
    "stacks_baseline": "KokunoYumeto/unofficial-stacks-project-ai-drafts",
    "no_source_or_proof_rewrites": true,
    "current_reading_resources_are_additive_to_frozen_language_access": true
  },
  "input_freeze": {
    "path": "inputs/20261002-801f1868/MANIFEST.json",
    "bytes": 4729,
    "sha256": "c81323c35b74e0b3cc888178161c625721f04d1353b6bdeeb0b7d3de74ede733"
  },
  "source_snapshots": {
    "core": {
      "repository": "https://github.com/KokunoYumeto/program-matematika-indonesia",
      "commit": "4f00b2104e76ece43a67c243e77196a124ad0098",
      "tree": "2c0a6b6e1a75455f0bb47c3311bc65e1d52ebeef",
      "commit_date": "2026-09-30T22:07:54Z"
    },
    "advanced": {
      "repository": "https://github.com/KokunoYumeto/open-mathematics-courses",
      "commit": "801f186833b9811fa826575ef0717e78a5047ab0",
      "tree": "8eeace06b59e87edf32768851af3ed0d5bf5727a",
      "commit_date": "2026-10-02T15:43:37Z"
    }
  },
  "advanced_snapshot_intake": {
    "model": "gpt-6-astra",
    "effort": "ultra",
    "source_commit_evidence": "fa7e5ea9824096c77fb9bd3b940612e779687d6747491d97360e7691206ee200",
    "added_public_courses": [
      {
        "id": "AG-RG",
        "title": "Reductive group schemes",
        "lessons": 6
      }
    ],
    "removed_public_courses": [],
    "courses": 72,
    "lessons": 1061,
    "consumer_source": {
      "url": "https://raw.githubusercontent.com/KokunoYumeto/open-mathematics-courses/801f186833b9811fa826575ef0717e78a5047ab0/courses/RT-FIN/src/RT-FIN-01.md",
      "status": 200,
      "bytes": 31822,
      "sha256": "659942bdf47420e6665d59c4e80cf973867730d3b231d7e9c80ab8177bd83712",
      "matching_inspected_proof_snapshot": true
    },
    "proof_certification": false
  },
  "counts": {
    "core_courses": 40,
    "published_advanced_courses": 72,
    "published_advanced_lessons": 1061,
    "phone_frozen_courses": 58,
    "phone_frozen_lessons": 900,
    "preparation_edges": 368,
    "cross_programme_course_edges": 184,
    "native_lesson_reading_edges": 48,
    "reported_proof_providers": 3,
    "independently_verified_cross_programme_proof_matches": 0,
    "unresolved_routes": 0,
    "requirements_supplied_with_author_self_review": 2,
    "actual_uses_bound_to_supplied_requirements": 4
  },
  "courses": {
    "core": [
      {
        "id": "A00",
        "kind": "core",
        "level": "A",
        "title": {
          "id": "Praaljabar dan Fondasi Kuantitatif",
          "en": "Prealgebra and Quantitative Foundations"
        },
        "prerequisites": [],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-A00",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-A00"
        },
        "language_access": {
          "en": {
            "course_id": "A00",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-A00",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-mirror",
                  "relation_to_source": "mirror-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/openstax-prealgebra-2e-original-en/",
                  "label": "Program-hosted complete English HTML reader",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://openstax.org/details/books/prealgebra-2e",
                  "label": "Original publisher page — OpenStax Prealgebra 2e",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/openstax-prealgebra-2e-original-en/releases/download/v1.0.0/openstax-prealgebra-2e-original-en-html-v1.0.0.zip",
                "label": "Complete English HTML reader — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 79027794,
                "sha256": "8fc15a085987cea3963bac27c831bb339fa05553001267564c8a66db3cefc04a",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/openstax-prealgebra-2e-id-ID/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22070683/files/prealgebra-2e-id-ID-v0.2.7-reader.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/A00/latihan/index.html",
                "label": "Latihan & diagnosis",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 51189,
                "sha256": "3013a93c482df11119e512449a9d0835744011a0540a2c65878d377630464fca",
                "source_body_bytes": 49082,
                "source_body_sha256": "0804af9e223c1003ed915f8a28637c4756899a1d31566d3dd73f3b730edb612c",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a00/A00.html",
                "label": "A00 · Konsep, prasyarat dan pilihan belajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 202392,
                "sha256": "cf453e2fca3fd05328551252c2e2dbd46c9ed4b02536b4593114676be73354f8",
                "source_body_bytes": 199799,
                "source_body_sha256": "1e583e86bfaa93e2225ceedc22947675e9726984127c045f0a6392ba398a01cc",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a00/A00-en.html",
                "label": "A00 · English concepts, modules and exercises",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 202823,
                "sha256": "da16bf1d508f4bf10639be60114783b564aaa1f268ec6acdfc56ad3fd94d974c",
                "source_body_bytes": 200228,
                "source_body_sha256": "682e66e6f69ef8f508f69e21da226452c45b554af2697c445d1842bbdc3b22f9",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a00/A00-pengajar-en.html",
                "label": "A00 · English educator map",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 229090,
                "sha256": "738eb43c477899ac8913f6d60c430b6288599ffbb19d590be7eaa9167e8b90fe",
                "source_body_bytes": 226495,
                "source_body_sha256": "e92e100419860590390f8e2655f9ea98fae5f3c97557b7344e806024dbf8ac5d",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22070683",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/openstax-prealgebra-2e-id-ID",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "A00",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-A00",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/openstax-prealgebra-2e-id-ID/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22070683/files/prealgebra-2e-id-ID-v0.2.7-reader.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://openstax.org/details/books/prealgebra-2e",
                  "label": "Original publisher page — OpenStax Prealgebra 2e",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-mirror",
                "relation_to_source": "mirror-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/openstax-prealgebra-2e-original-en/",
                "label": "Program-hosted complete English HTML reader",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/openstax-prealgebra-2e-original-en/releases/download/v1.0.0/openstax-prealgebra-2e-original-en-html-v1.0.0.zip",
                "label": "Complete English HTML reader — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 79027794,
                "sha256": "8fc15a085987cea3963bac27c831bb339fa05553001267564c8a66db3cefc04a",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/A00/latihan/index.html",
                "label": "Latihan & diagnosis",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 51189,
                "sha256": "3013a93c482df11119e512449a9d0835744011a0540a2c65878d377630464fca",
                "source_body_bytes": 49082,
                "source_body_sha256": "0804af9e223c1003ed915f8a28637c4756899a1d31566d3dd73f3b730edb612c",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a00/A00.html",
                "label": "A00 · Konsep, prasyarat dan pilihan belajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 202392,
                "sha256": "cf453e2fca3fd05328551252c2e2dbd46c9ed4b02536b4593114676be73354f8",
                "source_body_bytes": 199799,
                "source_body_sha256": "1e583e86bfaa93e2225ceedc22947675e9726984127c045f0a6392ba398a01cc",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a00/A00-en.html",
                "label": "A00 · English concepts, modules and exercises",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 202823,
                "sha256": "da16bf1d508f4bf10639be60114783b564aaa1f268ec6acdfc56ad3fd94d974c",
                "source_body_bytes": 200228,
                "source_body_sha256": "682e66e6f69ef8f508f69e21da226452c45b554af2697c445d1842bbdc3b22f9",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a00/A00-pengajar-en.html",
                "label": "A00 · English educator map",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 229090,
                "sha256": "738eb43c477899ac8913f6d60c430b6288599ffbb19d590be7eaa9167e8b90fe",
                "source_body_bytes": 226495,
                "source_body_sha256": "e92e100419860590390f8e2655f9ea98fae5f3c97557b7344e806024dbf8ac5d",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22070683",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/openstax-prealgebra-2e-id-ID",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "A00",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/openstax-prealgebra-2e-id-ID",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "A10",
        "kind": "core",
        "level": "A",
        "title": {
          "id": "Aljabar Dasar",
          "en": "Elementary Algebra"
        },
        "prerequisites": [
          "A00"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-A10",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-A10"
        },
        "language_access": {
          "en": {
            "course_id": "A10",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-A10",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-mirror",
                  "relation_to_source": "mirror-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/openstax-elementary-algebra-2e-original-en/",
                  "label": "Program-hosted complete English HTML reader",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://openstax.org/details/books/elementary-algebra-2e",
                  "label": "Original publisher page — OpenStax Elementary Algebra 2e",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/openstax-elementary-algebra-2e-original-en/releases/download/v1.0.0/openstax-elementary-algebra-2e-original-en-html-v1.0.0.zip",
                "label": "Complete English HTML reader — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 86119672,
                "sha256": "83697cc22a9902792df6db89613044941a6669d4c4bff0c270aa1729dc2b1ef0",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "mirrors",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/A10/reader/index.html",
                "label": "Bahasa Indonesia — Read Elementary Algebra — all 82 modules",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 14915394,
                "sha256": "abf177dfe58d21878dc754801502ea68cce2b87cbd73d24e90e99babfff3d8b7",
                "source_body_bytes": 14913255,
                "source_body_sha256": "8d125695e57897c2364a0508ab7b169ef96f7e0e6b7c697190418436a63ffc54",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22236314/files/00-elementary-algebra-2e-bahasa-indonesia-EA2-C0082-reader.pdf?download=1",
                "label": "Bahasa Indonesia — Complete textbook — 1627 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 74917277,
                "sha256": "e4bc958edeb60a41604862dd0b67692bbfbcbb85b5de906c92af1f6c93bda505",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a10/A10.html",
                "label": "A10 · Modul, latihan dan cakupan solusi",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 8645978,
                "sha256": "ec2a141824bccf5396724c717aa9f3780e75ed21c7af1018c02a469c8bc9dd8e",
                "source_body_bytes": 8643511,
                "source_body_sha256": "5d8f62fcc545a94e0ea0f765b835cce0a38b1ad8309e6fa457c5e70df68641a6",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a10/A10-en.html",
                "label": "A10 · English concepts, modules and exercises",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 8644790,
                "sha256": "fa4d9653d8134d43b67045b5cb91e3d05cdeecd6891f5ceeff8af66b511b6ec7",
                "source_body_bytes": 8642321,
                "source_body_sha256": "6cf8fe0f46fcd2a2d214a3e1231cf174c5f90eb9d127241ea729c063b986c54e",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a10/A10-pengajar-en.html",
                "label": "A10 · English educator map",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 8650547,
                "sha256": "29e87c6257c2b01f988b0c3677a8e1429a5f209ed107f237f3bdd3e6339dafac",
                "source_body_bytes": 8648078,
                "source_body_sha256": "2080bd177aa051d2bcb0e004784acc001c55dc9a23a5723528d8021990ea4d73",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22236314/files/elementary-algebra-2e-id-ID-1.0.3-source.zip?download=1",
                "label": "Sumber edisi lengkap Elementary Algebra 2e",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "77a6ecfa22c4a5b58b0b7f72e5ec9db11ac4656bc7fc9c4944a4a7916a2472f3",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22236314/files/elementary-algebra-2e-id-ID-1.0.3-backend-core.zip?download=1",
                "label": "Backend modular edisi lengkap Elementary Algebra 2e",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "6dc5ddafb3178d82308819ced69f724919dcb388168c5c63ec39db9e99777b13",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22236314",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/openstax-elementary-algebra-2e-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "A10",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-A10",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "mirrors",
                  "content_language": "id",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/A10/reader/index.html",
                  "label": "Baca Aljabar Dasar — 82 modul lengkap",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 14915394,
                  "sha256": "abf177dfe58d21878dc754801502ea68cce2b87cbd73d24e90e99babfff3d8b7",
                  "source_body_bytes": 14913255,
                  "source_body_sha256": "8d125695e57897c2364a0508ab7b169ef96f7e0e6b7c697190418436a63ffc54",
                  "hosted_navigation_overlay": "v1"
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://openstax.org/details/books/elementary-algebra-2e",
                  "label": "Original publisher page — OpenStax Elementary Algebra 2e",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22236314/files/00-elementary-algebra-2e-bahasa-indonesia-EA2-C0082-reader.pdf?download=1",
                "label": "Buku teks lengkap — 1627 halaman",
                "label_language": "id",
                "primary": true,
                "offline_after_download": true,
                "bytes": 74917277,
                "sha256": "e4bc958edeb60a41604862dd0b67692bbfbcbb85b5de906c92af1f6c93bda505",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-mirror",
                "relation_to_source": "mirror-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/openstax-elementary-algebra-2e-original-en/",
                "label": "Program-hosted complete English HTML reader",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/openstax-elementary-algebra-2e-original-en/releases/download/v1.0.0/openstax-elementary-algebra-2e-original-en-html-v1.0.0.zip",
                "label": "Complete English HTML reader — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 86119672,
                "sha256": "83697cc22a9902792df6db89613044941a6669d4c4bff0c270aa1729dc2b1ef0",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a10/A10.html",
                "label": "A10 · Modul, latihan dan cakupan solusi",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 8645978,
                "sha256": "ec2a141824bccf5396724c717aa9f3780e75ed21c7af1018c02a469c8bc9dd8e",
                "source_body_bytes": 8643511,
                "source_body_sha256": "5d8f62fcc545a94e0ea0f765b835cce0a38b1ad8309e6fa457c5e70df68641a6",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a10/A10-en.html",
                "label": "A10 · English concepts, modules and exercises",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 8644790,
                "sha256": "fa4d9653d8134d43b67045b5cb91e3d05cdeecd6891f5ceeff8af66b511b6ec7",
                "source_body_bytes": 8642321,
                "source_body_sha256": "6cf8fe0f46fcd2a2d214a3e1231cf174c5f90eb9d127241ea729c063b986c54e",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a10/A10-pengajar-en.html",
                "label": "A10 · English educator map",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 8650547,
                "sha256": "29e87c6257c2b01f988b0c3677a8e1429a5f209ed107f237f3bdd3e6339dafac",
                "source_body_bytes": 8648078,
                "source_body_sha256": "2080bd177aa051d2bcb0e004784acc001c55dc9a23a5723528d8021990ea4d73",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22236314/files/elementary-algebra-2e-id-ID-1.0.3-source.zip?download=1",
                "label": "Sumber edisi lengkap Elementary Algebra 2e",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "77a6ecfa22c4a5b58b0b7f72e5ec9db11ac4656bc7fc9c4944a4a7916a2472f3",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22236314/files/elementary-algebra-2e-id-ID-1.0.3-backend-core.zip?download=1",
                "label": "Backend modular edisi lengkap Elementary Algebra 2e",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "6dc5ddafb3178d82308819ced69f724919dcb388168c5c63ec39db9e99777b13",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22236314",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/openstax-elementary-algebra-2e-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "A10",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/openstax-elementary-algebra-2e-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "A20",
        "kind": "core",
        "level": "A",
        "title": {
          "id": "Aljabar Menengah",
          "en": "Intermediate Algebra"
        },
        "prerequisites": [
          "A10"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-A20",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-A20"
        },
        "language_access": {
          "en": {
            "course_id": "A20",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-A20",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-mirror",
                  "relation_to_source": "mirror-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/openstax-intermediate-algebra-2e-original-en/",
                  "label": "Program-hosted complete English HTML reader",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://openstax.org/books/intermediate-algebra-2e/pages/1-introduction",
                  "label": "Original publisher reader — OpenStax Intermediate Algebra 2e",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/openstax-intermediate-algebra-2e-original-en/releases/download/v1.0.0/openstax-intermediate-algebra-2e-original-en-html-v1.0.0.zip",
                "label": "Complete English HTML reader — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 90279762,
                "sha256": "6348f5085bf7e6b7dc01dd62704019b56f2cbf6202849951875aa5398fc20e11",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22229860/files/openstax-intermediate-algebra-2e-id-ID-1.0.0-reader.pdf?download=1",
                "label": "Bahasa Indonesia — Complete textbook — 3438 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 412049461,
                "sha256": "76276eeab590cd8181fd531378c4b4860bf30289a5e8093c9af5788d1eca3a9c",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a20/A20.html",
                "label": "A20 · Aljabar Menengah",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 36639,
                "sha256": "e874eba1b347cffc8468a153cdc1bcdd8a80414045affddb47000897befce330",
                "source_body_bytes": 34292,
                "source_body_sha256": "3f8ec3ecae8d230e38dc2d812d64bfda06ba632e8833863864e272756a11f155",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22229860",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/openstax-intermediate-algebra-2e-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "A20",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-A20",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/records/22229860/files/openstax-intermediate-algebra-2e-id-ID-1.0.0-reader.pdf?download=1",
                  "label": "Buku teks lengkap — 3438 halaman",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": true,
                  "bytes": 412049461,
                  "sha256": "76276eeab590cd8181fd531378c4b4860bf30289a5e8093c9af5788d1eca3a9c",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://openstax.org/books/intermediate-algebra-2e/pages/1-introduction",
                  "label": "Original publisher reader — OpenStax Intermediate Algebra 2e",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-mirror",
                "relation_to_source": "mirror-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/openstax-intermediate-algebra-2e-original-en/",
                "label": "Program-hosted complete English HTML reader",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/openstax-intermediate-algebra-2e-original-en/releases/download/v1.0.0/openstax-intermediate-algebra-2e-original-en-html-v1.0.0.zip",
                "label": "Complete English HTML reader — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 90279762,
                "sha256": "6348f5085bf7e6b7dc01dd62704019b56f2cbf6202849951875aa5398fc20e11",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a20/A20.html",
                "label": "A20 · Aljabar Menengah",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 36639,
                "sha256": "e874eba1b347cffc8468a153cdc1bcdd8a80414045affddb47000897befce330",
                "source_body_bytes": 34292,
                "source_body_sha256": "3f8ec3ecae8d230e38dc2d812d64bfda06ba632e8833863864e272756a11f155",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22229860",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/openstax-intermediate-algebra-2e-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "A20",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": null,
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "A30",
        "kind": "core",
        "level": "A",
        "title": {
          "id": "Prakalkulus dan Trigonometri",
          "en": "Precalculus and Trigonometry"
        },
        "prerequisites": [
          "A20"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-A30",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-A30"
        },
        "language_access": {
          "en": {
            "course_id": "A30",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-A30",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-mirror",
                  "relation_to_source": "mirror-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/A30/reader/",
                  "label": "Program-hosted complete English HTML reader — 87 modules",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 13913,
                  "sha256": "fb4f78d21e683d995abdfbeffd62870cd50485b33a5bcb2e065e7c348ab83a93",
                  "source_body_bytes": 11732,
                  "source_body_sha256": "f318c20ea882e5715fabee0eee8997bdda50f803861a0dc9db19a1b8cfd33520",
                  "hosted_navigation_overlay": "v1"
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://openstax.org/books/precalculus-2e/pages/1-introduction-to-functions",
                  "label": "Original publisher reader — OpenStax Precalculus 2e",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.63.28/A30-Precalculus-2e-original-English-reader-source-v1.zip",
                "label": "Complete English reader and original source — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 107409313,
                "sha256": "ad4c91eb6af25d38ef835df9ffd0654346558ea75dff71e6299015f96de0d11f",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22290180/files/OpenStax-Precalculus-2e-id-ID-1.0.0-reader.pdf?download=1",
                "label": "Bahasa Indonesia — Complete textbook — 3165 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 305654938,
                "sha256": "3cfd5294b91252cc766992f158b6601e80aa31b719b0b8bf69e1ff6d08a4fa3e",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a30/A30.html",
                "label": "A30 · Prakalkulus dan Trigonometri",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 35698,
                "sha256": "3838bae8a3f689ec0a92effb42bf2b1e3dca47570e512f0ee5ac548f4b28b04f",
                "source_body_bytes": 33361,
                "source_body_sha256": "3156f2091f97e1694a0d7da77f247b38b482f3323afcb70de74fe6ebc8f86508",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22290180",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/openstax-precalculus-2e-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "A30",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-A30",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/records/22290180/files/OpenStax-Precalculus-2e-id-ID-1.0.0-reader.pdf?download=1",
                  "label": "Buku teks lengkap — 3165 halaman",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": true,
                  "bytes": 305654938,
                  "sha256": "3cfd5294b91252cc766992f158b6601e80aa31b719b0b8bf69e1ff6d08a4fa3e",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://openstax.org/books/precalculus-2e/pages/1-introduction-to-functions",
                  "label": "Original publisher reader — OpenStax Precalculus 2e",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-mirror",
                "relation_to_source": "mirror-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/A30/reader/",
                "label": "Program-hosted complete English HTML reader — 87 modules",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 13913,
                "sha256": "fb4f78d21e683d995abdfbeffd62870cd50485b33a5bcb2e065e7c348ab83a93",
                "source_body_bytes": 11732,
                "source_body_sha256": "f318c20ea882e5715fabee0eee8997bdda50f803861a0dc9db19a1b8cfd33520",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.63.28/A30-Precalculus-2e-original-English-reader-source-v1.zip",
                "label": "Complete English reader and original source — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 107409313,
                "sha256": "ad4c91eb6af25d38ef835df9ffd0654346558ea75dff71e6299015f96de0d11f",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/a30/A30.html",
                "label": "A30 · Prakalkulus dan Trigonometri",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 35698,
                "sha256": "3838bae8a3f689ec0a92effb42bf2b1e3dca47570e512f0ee5ac548f4b28b04f",
                "source_body_bytes": 33361,
                "source_body_sha256": "3156f2091f97e1694a0d7da77f247b38b482f3323afcb70de74fe6ebc8f86508",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22290180",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/openstax-precalculus-2e-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "A30",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/openstax-precalculus-2e-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "B10",
        "kind": "core",
        "level": "B",
        "title": {
          "id": "Pembuktian, Logika, dan Struktur Diskrit",
          "en": "Proof, Logic, and Discrete Structures"
        },
        "prerequisites": [
          "A30"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B10",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B10"
        },
        "language_access": {
          "en": {
            "course_id": "B10",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B10",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-mirror",
                  "relation_to_source": "mirror-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/B10/reader/",
                  "label": "Program-hosted original English reader — 7 chapters, 768 exercises",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 4046,
                  "sha256": "fc6d0ec28a9b1de2dc6a4ae71938ae051d584276cc54c42de994784e2b814ed2",
                  "source_body_bytes": 1867,
                  "source_body_sha256": "2f8e77004d3cacf137846d34a4dd742572c5cc2567a45c99c2cff80d6d6fd06a",
                  "hosted_navigation_overlay": "v1"
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://discrete.openmathbooks.org/dmoi4/",
                  "label": "Original author’s reader — Discrete Mathematics: An Open Introduction, 4th edition",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.63.29/B10-Discrete-Mathematics-original-English-reader-source-v2.zip",
                "label": "Complete English reader and original source — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 78033276,
                "sha256": "cd3b29543cf9bec2d621105398b227e9146a301948b979b7003d504d2594b3e2",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/discrete-mathematics-open-introduction-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22060439/files/00_MATEMATIKA_DISKRET_EDISI_KEEMPAT_BAHASA_INDONESIA_READER.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b10/B10.html",
                "label": "B10 · Pilihan latihan dan rencana belajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 20518,
                "sha256": "d9f3ec644a2eaa64e5b9332cf9cbb6ffc80ce3fb248427ba4c2b637b5e777da8",
                "source_body_bytes": 18025,
                "source_body_sha256": "e25db756b02f1e5d6c10e0a2e46600639b49936f335283c939d4e7569e0cee46",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "HTML ZIP",
                "url": "https://zenodo.org/records/22060439/files/MATEMATIKA_DISKRET_EDISI_KEEMPAT_ID_HTML.zip?download=1",
                "label": "Bahasa Indonesia — Complete HTML download — ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 7309181,
                "sha256": "58f73b309e6421dcc687638fe9ae0727de2dd311a022bb0e593bc31070d5f360",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22060439",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/discrete-mathematics-open-introduction-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "B10",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B10",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/discrete-mathematics-open-introduction-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22060439/files/00_MATEMATIKA_DISKRET_EDISI_KEEMPAT_BAHASA_INDONESIA_READER.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://discrete.openmathbooks.org/dmoi4/",
                  "label": "Original author’s reader — Discrete Mathematics: An Open Introduction, 4th edition",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-mirror",
                "relation_to_source": "mirror-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/B10/reader/",
                "label": "Program-hosted original English reader — 7 chapters, 768 exercises",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 4046,
                "sha256": "fc6d0ec28a9b1de2dc6a4ae71938ae051d584276cc54c42de994784e2b814ed2",
                "source_body_bytes": 1867,
                "source_body_sha256": "2f8e77004d3cacf137846d34a4dd742572c5cc2567a45c99c2cff80d6d6fd06a",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.63.29/B10-Discrete-Mathematics-original-English-reader-source-v2.zip",
                "label": "Complete English reader and original source — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 78033276,
                "sha256": "cd3b29543cf9bec2d621105398b227e9146a301948b979b7003d504d2594b3e2",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b10/B10.html",
                "label": "B10 · Pilihan latihan dan rencana belajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 20518,
                "sha256": "d9f3ec644a2eaa64e5b9332cf9cbb6ffc80ce3fb248427ba4c2b637b5e777da8",
                "source_body_bytes": 18025,
                "source_body_sha256": "e25db756b02f1e5d6c10e0a2e46600639b49936f335283c939d4e7569e0cee46",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "HTML ZIP",
                "url": "https://zenodo.org/records/22060439/files/MATEMATIKA_DISKRET_EDISI_KEEMPAT_ID_HTML.zip?download=1",
                "label": "Paket HTML lengkap — ZIP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 7309181,
                "sha256": "58f73b309e6421dcc687638fe9ae0727de2dd311a022bb0e593bc31070d5f360",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22060439",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/discrete-mathematics-open-introduction-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "B10",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/discrete-mathematics-open-introduction-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "B20",
        "kind": "core",
        "level": "B",
        "title": {
          "id": "Kalkulus Diferensial",
          "en": "Differential Calculus"
        },
        "prerequisites": [
          "A30"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B20",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B20"
        },
        "language_access": {
          "en": {
            "course_id": "B20",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B20",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-mirror",
                  "relation_to_source": "mirror-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/B20/reader/",
                  "label": "Program-hosted original English reader — CLP-1 textbook and 695 exercises with solutions",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 4044,
                  "sha256": "6f8f25edaaec938043ff6c2375e87c0308176cd9c029d1d0ef83f6befea29b43",
                  "source_body_bytes": 1911,
                  "source_body_sha256": "58a715d47337d03ba634e3483b1b540c45da8ca6359c398480bad8b77dae59b7",
                  "hosted_navigation_overlay": "v1"
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://personal.math.ubc.ca/~CLP/CLP1/",
                  "label": "Original authors’ website — CLP-1 textbook, problems and PDFs",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.63.30/B20-CLP1-Differential-Calculus-original-English-reader-source-v1.zip",
                "label": "Complete English reader and original source — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 55481369,
                "sha256": "4143b04601cdef9aed0f752081ca8193ebe05e457014536b27edbcd6a06c805c",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22183943/files/00_CLP1_KALKULUS_DIFERENSIAL_BAHASA_INDONESIA_2026.08.14.1_BUKU_TEKS.pdf?download=1",
                "label": "Bahasa Indonesia — Textbook — 442 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 4997608,
                "sha256": "e0466ca75b793aed64e2c356014233d9e85072b077a3b2d3344926835c408ec2",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22183943/files/01_CLP1_KALKULUS_DIFERENSIAL_BAHASA_INDONESIA_2026.08.14.1_SOAL_DAN_PENYELESAIAN.pdf?download=1",
                "label": "Bahasa Indonesia — Problems and solutions — 646 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 3263082,
                "sha256": "911b2a0e3a9de6eccb9dd93042fa697e8f02e4bb1ecdacec86ade68744245021",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B20.teacher.html",
                "label": "B20 · Perencana tugas CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 5323433,
                "sha256": "b265db7dba3a5d1c380fb4c2be58ccd0827bf04e73f218945db6784aa88b20bd",
                "source_body_bytes": 5320824,
                "source_body_sha256": "f11d054424087c416d7c256b871b581296ad0c5d987dda35985eaa7cdd347d5f",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B20.html",
                "label": "B20 · Rute baca keluarga CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 7297,
                "sha256": "42d3ed09005d731b6f542b4def1ad4c1c487b075650893b2aff36f46bf24f183",
                "source_body_bytes": 4694,
                "source_body_sha256": "d95264f616dd542097cf3f5f497afffd2aa948976f48441a5ce1315c33ac908d",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B20.teacher.en.html",
                "label": "B20 · English CLP assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 5323404,
                "sha256": "95bd4485c7822899795d2d3af298af2136fa70cce83118fc2d875d746520f3d8",
                "source_body_bytes": 5320799,
                "source_body_sha256": "d94525471a2c59fe47a6d9927eb58a1c7940e08bea505d3b0627809a1816c5b2",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22183943/files/09_CLP1_KALKULUS_DIFERENSIAL_2026.08.31_BACKEND_RIGHTS_REPAIR.zip?download=1",
                "label": "Backend modular CLP1 — arsip rights-repair",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "813fc553f52e0d6d4463c1ee8732a921f51180734acca8d3c2822c573999360f",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22183943",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/clp1-differential-calculus-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "B20",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B20",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/records/22183943/files/00_CLP1_KALKULUS_DIFERENSIAL_BAHASA_INDONESIA_2026.08.14.1_BUKU_TEKS.pdf?download=1",
                  "label": "Buku teks — 442 halaman",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": true,
                  "bytes": 4997608,
                  "sha256": "e0466ca75b793aed64e2c356014233d9e85072b077a3b2d3344926835c408ec2",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://personal.math.ubc.ca/~CLP/CLP1/",
                  "label": "Original authors’ website — CLP-1 textbook, problems and PDFs",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-mirror",
                "relation_to_source": "mirror-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/B20/reader/",
                "label": "Program-hosted original English reader — CLP-1 textbook and 695 exercises with solutions",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 4044,
                "sha256": "6f8f25edaaec938043ff6c2375e87c0308176cd9c029d1d0ef83f6befea29b43",
                "source_body_bytes": 1911,
                "source_body_sha256": "58a715d47337d03ba634e3483b1b540c45da8ca6359c398480bad8b77dae59b7",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.63.30/B20-CLP1-Differential-Calculus-original-English-reader-source-v1.zip",
                "label": "Complete English reader and original source — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 55481369,
                "sha256": "4143b04601cdef9aed0f752081ca8193ebe05e457014536b27edbcd6a06c805c",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22183943/files/01_CLP1_KALKULUS_DIFERENSIAL_BAHASA_INDONESIA_2026.08.14.1_SOAL_DAN_PENYELESAIAN.pdf?download=1",
                "label": "Buku soal dan penyelesaian — 646 halaman",
                "label_language": "id",
                "primary": false,
                "offline_after_download": true,
                "bytes": 3263082,
                "sha256": "911b2a0e3a9de6eccb9dd93042fa697e8f02e4bb1ecdacec86ade68744245021",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B20.teacher.html",
                "label": "B20 · Perencana tugas CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 5323433,
                "sha256": "b265db7dba3a5d1c380fb4c2be58ccd0827bf04e73f218945db6784aa88b20bd",
                "source_body_bytes": 5320824,
                "source_body_sha256": "f11d054424087c416d7c256b871b581296ad0c5d987dda35985eaa7cdd347d5f",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B20.html",
                "label": "B20 · Rute baca keluarga CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 7297,
                "sha256": "42d3ed09005d731b6f542b4def1ad4c1c487b075650893b2aff36f46bf24f183",
                "source_body_bytes": 4694,
                "source_body_sha256": "d95264f616dd542097cf3f5f497afffd2aa948976f48441a5ce1315c33ac908d",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B20.teacher.en.html",
                "label": "B20 · English CLP assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 5323404,
                "sha256": "95bd4485c7822899795d2d3af298af2136fa70cce83118fc2d875d746520f3d8",
                "source_body_bytes": 5320799,
                "source_body_sha256": "d94525471a2c59fe47a6d9927eb58a1c7940e08bea505d3b0627809a1816c5b2",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22183943/files/09_CLP1_KALKULUS_DIFERENSIAL_2026.08.31_BACKEND_RIGHTS_REPAIR.zip?download=1",
                "label": "Backend modular CLP1 — arsip rights-repair",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "813fc553f52e0d6d4463c1ee8732a921f51180734acca8d3c2822c573999360f",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22183943",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/clp1-differential-calculus-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "B20",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/clp1-differential-calculus-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "B30",
        "kind": "core",
        "level": "B",
        "title": {
          "id": "Kalkulus Integral",
          "en": "Integral Calculus"
        },
        "prerequisites": [
          "B20"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B30",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B30"
        },
        "language_access": {
          "en": {
            "course_id": "B30",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B30",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-mirror",
                  "relation_to_source": "mirror-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/B30/reader/",
                  "label": "Program-hosted original English reader — CLP-2 textbook and 737 exercises with solutions",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 4047,
                  "sha256": "6332152eccb3b07ae2d4dee6c0d387bc67bccfd134f0e9984f059982f2fdc37c",
                  "source_body_bytes": 1914,
                  "source_body_sha256": "f43511e398d2a94974bb8339d9014002e3c63a195c559a1bd0b7f7b576045019",
                  "hosted_navigation_overlay": "v1"
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://personal.math.ubc.ca/~CLP/CLP2/",
                  "label": "Original authors’ website — CLP-2 textbook, problems and PDFs",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.63.31/B30-CLP2-Integral-Calculus-original-English-reader-source-v1.zip",
                "label": "Complete English reader and original source — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 49073711,
                "sha256": "f5a1b8d6f1d14b66594585d4f04d1938eeb9258be9acd4687cbd176eece4b6ca",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22182941/files/CLP-2_Kalkulus_Integral_Bahasa_Indonesia_edisi_lengkap_2026-08-30.pdf?download=1",
                "label": "Bahasa Indonesia — Combined textbook and problems — 1243 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 7793932,
                "sha256": "2306d4bf92748ab99b8a0d57de77846fa196bfbf84f4666f3ecd8edd711d3aab",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B30.teacher.html",
                "label": "B30 · Perencana tugas CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 4836742,
                "sha256": "cc849651596d0065bff05002f0d2b6225927296683c63a87bb28906016afb8b0",
                "source_body_bytes": 4834297,
                "source_body_sha256": "11adc2fbd43cde7c03a79f5f7361d48f0c0b9ae8b60f2a17ea3bb24d1dd1c3ea",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B30.html",
                "label": "B30 · Rute baca keluarga CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 6306,
                "sha256": "ddb3e1a8f6052655e019020361c2da43055230886a0075b47dcb201060429602",
                "source_body_bytes": 3867,
                "source_body_sha256": "34f9d0fe8f9b1a9d891b03ad153374d4b1e7870e1ce042d7801fab7af2b7e220",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B30.teacher.en.html",
                "label": "B30 · English CLP assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 4836705,
                "sha256": "ad84812c902fe261ec140871706f9b0c6aec8019b4689c042d9d9d042a200284",
                "source_body_bytes": 4834264,
                "source_body_sha256": "92e6e1ea056c13c556c7c3922a5c13f075961d58c598013ec2c0410b486d429d",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22182941",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "B30",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B30",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/records/22182941/files/CLP-2_Kalkulus_Integral_Bahasa_Indonesia_edisi_lengkap_2026-08-30.pdf?download=1",
                  "label": "Buku gabungan teks dan soal — 1243 halaman",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": true,
                  "bytes": 7793932,
                  "sha256": "2306d4bf92748ab99b8a0d57de77846fa196bfbf84f4666f3ecd8edd711d3aab",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://personal.math.ubc.ca/~CLP/CLP2/",
                  "label": "Original authors’ website — CLP-2 textbook, problems and PDFs",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-mirror",
                "relation_to_source": "mirror-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/B30/reader/",
                "label": "Program-hosted original English reader — CLP-2 textbook and 737 exercises with solutions",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 4047,
                "sha256": "6332152eccb3b07ae2d4dee6c0d387bc67bccfd134f0e9984f059982f2fdc37c",
                "source_body_bytes": 1914,
                "source_body_sha256": "f43511e398d2a94974bb8339d9014002e3c63a195c559a1bd0b7f7b576045019",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-mirror",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/program-matematika-indonesia/releases/download/v0.63.31/B30-CLP2-Integral-Calculus-original-English-reader-source-v1.zip",
                "label": "Complete English reader and original source — offline ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 49073711,
                "sha256": "f5a1b8d6f1d14b66594585d4f04d1938eeb9258be9acd4687cbd176eece4b6ca",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B30.teacher.html",
                "label": "B30 · Perencana tugas CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 4836742,
                "sha256": "cc849651596d0065bff05002f0d2b6225927296683c63a87bb28906016afb8b0",
                "source_body_bytes": 4834297,
                "source_body_sha256": "11adc2fbd43cde7c03a79f5f7361d48f0c0b9ae8b60f2a17ea3bb24d1dd1c3ea",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B30.html",
                "label": "B30 · Rute baca keluarga CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 6306,
                "sha256": "ddb3e1a8f6052655e019020361c2da43055230886a0075b47dcb201060429602",
                "source_body_bytes": 3867,
                "source_body_sha256": "34f9d0fe8f9b1a9d891b03ad153374d4b1e7870e1ce042d7801fab7af2b7e220",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B30.teacher.en.html",
                "label": "B30 · English CLP assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 4836705,
                "sha256": "ad84812c902fe261ec140871706f9b0c6aec8019b4689c042d9d9d042a200284",
                "source_body_bytes": 4834264,
                "source_body_sha256": "92e6e1ea056c13c556c7c3922a5c13f075961d58c598013ec2c0410b486d429d",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22182941",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "B30",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": null,
        "current_reading_resources": [],
        "current_human_reading_resources": [
          {
            "id": "human.lebl.analysis.sec_rint",
            "titles": {
              "en": "The Riemann integral",
              "id": "Integral Riemann"
            },
            "course_ids": [
              "C10",
              "B30"
            ],
            "content_language": "en",
            "reader": {
              "url": "https://www.jirka.org/ra/html/sec_rint.html",
              "bytes": 84921,
              "sha256": "e50422b32a44b596fd10dab64510c85b0d7ed7876169fb99d008ef32cbd97c79"
            },
            "source": {
              "archive": "https://www.jirka.org/ra/",
              "member": "ch-riemann.tex",
              "sha256": "d6f8e5b1e5425036a9e5dfbd300e4b9df795e6a79900c58333bf3eac1990c9e6",
              "label": "sec:rint"
            },
            "author": "Jiří Lebl",
            "licence": "CC-BY-SA-4.0",
            "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
            "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
            "anchors": [
              "ptx-content",
              "sec_rint",
              "sec_rint-2",
              "sec_rint-2-1",
              "sec_rint-2-2",
              "sec_rint-2-2-5",
              "sec_rint-2-2-5",
              "sec_rint-2-2-6",
              "sec_rint-2-2-6",
              "sec_rint-3",
              "sec_rint-3-2",
              "sec_rint-3-3",
              "sec_rint-3-3-1-1",
              "sec_rint-3-3-1-1-5",
              "sec_rint-3-3-1-1-6",
              "sec_rint-3-3-1-1-10",
              "sec_rint-3-4",
              "darbouxfig",
              "sumulbound_prop",
              "sumulbound_prop-1-1",
              "sumulbound_eq",
              "sec_rint-3-9",
              "sec_rint-3-9-1",
              "sec_rint-3-9-1-6",
              "sec_rint-3-10",
              "sec_rint-3-10-1-1",
              "sec_rint-3-10-1-1-1",
              "sec_rint-3-10-1-1-7",
              "sec_rint-3-11",
              "example_dirichletfunc",
              "example_dirichletfunc-1-1",
              "example_dirichletfunc-1-1-7",
              "example_dirichletfunc-1-1-12",
              "sec_rint-3-13",
              "sec_rint-3-13-1-1",
              "sec_rint-3-14",
              "sec_rint-3-15",
              "sec_rint-3-15-1-1",
              "sec_rint-3-16",
              "prop_refinement",
              "prop_refinement-1-1",
              "prop_refinement-1-1-6",
              "sec_rint-3-18",
              "sec_rint-3-18-1",
              "sec_rint-3-18-2",
              "sec_rint-3-18-2-4",
              "fig_refinement",
              "sec_rint-3-18-6",
              "sec_rint-3-18-6-6",
              "sec_rint-3-18-6-7",
              "sec_rint-3-18-7",
              "sec_rint-3-19",
              "intulbound_prop",
              "intulbound_prop-1-1",
              "intulbound_eq",
              "sec_rint-3-21",
              "sec_rint-3-21-1",
              "sec_rint-3-21-1-3",
              "sec_rint-3-21-2",
              "sec_rint-3-21-2-12",
              "sec_rint-3-21-2-17",
              "sec_rint-4",
              "sec_rint-4-2",
              "sec_rint-4-3",
              "sec_rint-4-3-1-1",
              "sec_rint-4-3-1-1-2",
              "sec_rint-4-3-1-1-8",
              "sec_rint-4-3-1-1-9",
              "sec_rint-4-4",
              "intbound_prop",
              "intbound_prop-1-1",
              "intbound_prop-1-1-5",
              "fig_integralminmax",
              "sec_rint-4-9",
              "sec_rint-4-9-3",
              "sec_rint-4-10",
              "sec_rint-4-10-1-1",
              "sec_rint-4-11",
              "sec_rint-4-11-1-1",
              "sec_rint-4-11-1-1-2",
              "sec_rint-4-11-1-2",
              "sec_rint-4-11-1-2-3",
              "darbouxfigstep",
              "sec_rint-4-11-1-6",
              "sec_rint-4-11-1-6-1",
              "sec_rint-4-11-1-6-2",
              "sec_rint-4-11-1-6-8",
              "sec_rint-4-12",
              "sec_rint-4-13",
              "sec_rint-4-13-1-1",
              "sec_rint-4-13-1-1-6",
              "sec_rint-4-14",
              "sec_rint-4-14-1",
              "sec_rint-4-14-1-3",
              "sec_rint-4-15",
              "sec_rint-4-15-1-1",
              "sec_rint-4-15-1-2",
              "sec_rint-4-15-1-2-10",
              "sec_rint-4-15-1-2-11",
              "sec_rint-4-16",
              "sec_rint-4-16-1-1",
              "sec_rint-5",
              "sec_rint-5-2",
              "sec_rint-5-3",
              "sec_rint-5-3-5",
              "sec_rint-5-3-7",
              "sec_rint-5-4",
              "sec_rint-5-4-2",
              "sec_rint-6",
              "sec_rint-6-1",
              "sec_rint-6-1-1-1",
              "sec_rint-6-2",
              "sec_rint-6-2-1-1",
              "sec_rint-6-3",
              "sec_rint-6-3-1-1",
              "sec_rint-6-3-1-1-4",
              "sec_rint-6-3-1-1-6",
              "sec_rint-6-4",
              "sec_rint-6-4-1-1",
              "sec_rint-6-5",
              "sec_rint-6-5-1-1",
              "sec_rint-6-5-1-1-2",
              "sec_rint-6-6",
              "sec_rint-6-6-1-1",
              "sec_rint-6-6-1-1-4",
              "exercise_taggedpartition",
              "exercise_taggedpartition-1-1",
              "exercise_taggedpartition-1-1-7",
              "sec_rint-6-8",
              "sec_rint-6-8-1-1",
              "sec_rint-6-9",
              "sec_rint-6-9-1-1",
              "sec_rint-6-10",
              "sec_rint-6-10-1-1",
              "sec_rint-6-11",
              "sec_rint-6-11-1-1",
              "sec_rint-6-11-1-2",
              "sec_rint-6-11-1-2-1",
              "sec_rint-6-11-1-2-1-1",
              "sec_rint-6-11-1-2-2",
              "sec_rint-6-11-1-2-2-1",
              "exercise_riemannintdarboux",
              "exercise_riemannintdarboux-1-1",
              "sec_rint-6-13",
              "sec_rint-6-13-1-1",
              "sec_rint-6-14",
              "sec_rint-6-14-1-1",
              "sec_rint-6-15",
              "sec_rint-6-15-1-1",
              "ptx-content-footer"
            ],
            "relation": "supplementary_reading",
            "mathematical_consumer_equivalence": "not_inferred",
            "whole_course_completion": false
          },
          {
            "id": "human.lebl.analysis.sec_ftc",
            "titles": {
              "en": "Fundamental theorem of calculus",
              "id": "Teorema dasar kalkulus"
            },
            "course_ids": [
              "C10",
              "B30"
            ],
            "content_language": "en",
            "reader": {
              "url": "https://www.jirka.org/ra/html/sec_ftc.html",
              "bytes": 62516,
              "sha256": "1e3f3c4a7fa5d456fbc17932a1119e8f066372813accf429910ce426d1f28d79"
            },
            "source": {
              "archive": "https://www.jirka.org/ra/",
              "member": "ch-riemann.tex",
              "sha256": "d6f8e5b1e5425036a9e5dfbd300e4b9df795e6a79900c58333bf3eac1990c9e6",
              "label": "sec:ftc"
            },
            "author": "Jiří Lebl",
            "licence": "CC-BY-SA-4.0",
            "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
            "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
            "anchors": [
              "ptx-content",
              "sec_ftc",
              "sec_ftc-2",
              "sec_ftc-2-1",
              "sec_ftc-2-2",
              "sec_ftc-3",
              "thm_FTCv1",
              "thm_FTCv1-1-1",
              "thm_FTCv1-1-1-6",
              "sec_ftc-3-3",
              "sec_ftc-3-4",
              "sec_ftc-3-4-1",
              "sec_ftc-3-4-1-6",
              "fig_fundthmfig",
              "sec_ftc-3-4-5",
              "sec_ftc-3-4-5-3",
              "sec_ftc-3-4-5-5",
              "sec_ftc-3-4-5-7",
              "sec_ftc-3-4-5-10",
              "sec_ftc-3-4-5-13",
              "sec_ftc-3-4-5-15",
              "sec_ftc-3-5",
              "sec_ftc-3-6",
              "sec_ftc-3-6-1-1",
              "sec_ftc-3-6-1-1-1",
              "sec_ftc-3-6-1-1-4",
              "sec_ftc-4",
              "sec_ftc-4-2",
              "thm_FTCv2",
              "thm_FTCv2-1-1",
              "thm_FTCv2-1-1-2",
              "sec_ftc-4-4",
              "sec_ftc-4-4-1",
              "sec_ftc-4-4-1-7",
              "sec_ftc-4-4-2",
              "sec_ftc-4-4-2-9",
              "sec_ftc-4-4-2-11",
              "sec_ftc-4-4-2-14",
              "sec_ftc-4-4-2-15",
              "sec_ftc-4-4-2-16",
              "sec_ftc-4-5",
              "remark_fundthmbase",
              "remark_fundthmbase-1-1",
              "remark_fundthmbase-1-1-2",
              "sec_ftc-4-7",
              "sec_ftc-4-8",
              "sec_ftc-4-8-3",
              "sec_ftc-4-9",
              "sec_ftc-4-9-2",
              "sec_ftc-5",
              "sec_ftc-5-2",
              "sec_ftc-5-3",
              "sec_ftc-5-3-3-1",
              "sec_ftc-5-3-3-1-4",
              "sec_ftc-5-4",
              "sec_ftc-5-4-1",
              "sec_ftc-5-4-2",
              "sec_ftc-5-4-2-2",
              "sec_ftc-5-4-2-7",
              "sec_ftc-5-4-2-9",
              "sec_ftc-5-5",
              "sec_ftc-5-6",
              "sec_ftc-5-6-1-1",
              "sec_ftc-5-6-1-1-4",
              "sec_ftc-5-7",
              "sec_ftc-5-8",
              "sec_ftc-5-8-1-1",
              "sec_ftc-5-8-1-1-1",
              "sec_ftc-5-8-1-1-4",
              "sec_ftc-6",
              "sec_ftc-6-1",
              "sec_ftc-6-1-1-1",
              "sec_ftc-6-2",
              "sec_ftc-6-2-1-1",
              "sec_ftc-6-3",
              "sec_ftc-6-3-1-1",
              "secondftc_exercise",
              "secondftc_exercise-1-1",
              "secondftc_exercise-1-1-3",
              "sec_ftc-6-5",
              "sec_ftc-6-5-1-1",
              "sec_ftc-6-5-1-1-5",
              "sec_ftc-6-6",
              "sec_ftc-6-6-1-1",
              "sec_ftc-6-6-1-1-3",
              "sec_ftc-6-6-1-1-3",
              "sec_ftc-6-7",
              "exercise_smoothingout",
              "exercise_smoothingout-1-1",
              "exercise_smoothingout-1-1-5",
              "exercise_smoothingout-1-2",
              "exercise_smoothingout-1-2-1",
              "exercise_smoothingout-1-2-1-1",
              "exercise_smoothingout-1-2-2",
              "exercise_smoothingout-1-2-2-1",
              "exercise_smoothingout-1-2-3",
              "exercise_smoothingout-1-2-3-1",
              "sec_ftc-6-9",
              "sec_ftc-6-9-1-1",
              "sec_ftc-6-10",
              "sec_ftc-6-10-1-1",
              "sec_ftc-6-11",
              "sec_ftc-6-11-1-1",
              "sec_ftc-6-11-1-2",
              "sec_ftc-6-11-1-2-1",
              "sec_ftc-6-11-1-2-1-1",
              "sec_ftc-6-11-1-2-2",
              "sec_ftc-6-11-1-2-2-1",
              "sec_ftc-6-12",
              "sec_ftc-6-12-1-1",
              "sec_ftc-6-12-1-2",
              "sec_ftc-6-12-1-2-1",
              "sec_ftc-6-12-1-2-1-1",
              "sec_ftc-6-12-1-2-2",
              "sec_ftc-6-12-1-2-2-1",
              "sec_ftc-6-13",
              "sec_ftc-6-13-1-1",
              "sec_ftc-6-13-1-2",
              "sec_ftc-6-13-1-2-1",
              "sec_ftc-6-13-1-2-1-1",
              "sec_ftc-6-13-1-2-2",
              "sec_ftc-6-13-1-2-2-1",
              "sec_ftc-6-14",
              "sec_ftc-6-14-1-1",
              "sec_ftc-6-14-1-1-2",
              "ptx-content-footer"
            ],
            "relation": "supplementary_reading",
            "mathematical_consumer_equivalence": "not_inferred",
            "whole_course_completion": false
          }
        ]
      },
      {
        "id": "B40",
        "kind": "core",
        "level": "B",
        "title": {
          "id": "Aljabar Linear",
          "en": "Linear Algebra"
        },
        "prerequisites": [
          "A30",
          "B10"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B40",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B40"
        },
        "language_access": {
          "en": {
            "course_id": "B40",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B40",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://hefferon.net/linearalgebra/",
                  "label": "Hefferon: Linear Algebra, answers, and Sage lab",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/hefferon-linear-algebra-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22070458/files/01_HEFFERON_LINEAR_ALGEBRA_ID_TEXTBOOK_2026.08.22.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b40/B40.html",
                "label": "B40 · Aljabar Linear",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 38386,
                "sha256": "bb7a2c70ba3fda2b322c23f81b38fa8446407fb44441c884ee3d2899033166df",
                "source_body_bytes": 36141,
                "source_body_sha256": "ccc406c42b58de75ffba1ff15166abedf4035725aadf89f2b756ff44c3330336",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://zenodo.org/records/22070458/files/02_HEFFERON_LINEAR_ALGEBRA_ID_WORKED_ANSWERS_2026.08.22.pdf?download=1",
                "label": "Jawaban Bekerja Aljabar Linear",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "61f8a344cade529249d4f165bb62bce17579b6a4408b11634999e9f73ec9c01b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://zenodo.org/records/22070458/files/03_HEFFERON_LINEAR_ALGEBRA_ID_SAGE_LAB_2026.08.22.pdf?download=1",
                "label": "Laboratorium Sage Aljabar Linear",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "adb78966020355a90442c7ae68c734f1fd6b44b5d935a3f75e531ea666eeee4a",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22070458",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/hefferon-linear-algebra-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "B40",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B40",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/hefferon-linear-algebra-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22070458/files/01_HEFFERON_LINEAR_ALGEBRA_ID_TEXTBOOK_2026.08.22.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://hefferon.net/linearalgebra/",
                  "label": "Hefferon: Linear Algebra, answers, and Sage lab",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b40/B40.html",
                "label": "B40 · Aljabar Linear",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 38386,
                "sha256": "bb7a2c70ba3fda2b322c23f81b38fa8446407fb44441c884ee3d2899033166df",
                "source_body_bytes": 36141,
                "source_body_sha256": "ccc406c42b58de75ffba1ff15166abedf4035725aadf89f2b756ff44c3330336",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://zenodo.org/records/22070458/files/02_HEFFERON_LINEAR_ALGEBRA_ID_WORKED_ANSWERS_2026.08.22.pdf?download=1",
                "label": "Jawaban Bekerja Aljabar Linear",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "61f8a344cade529249d4f165bb62bce17579b6a4408b11634999e9f73ec9c01b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://zenodo.org/records/22070458/files/03_HEFFERON_LINEAR_ALGEBRA_ID_SAGE_LAB_2026.08.22.pdf?download=1",
                "label": "Laboratorium Sage Aljabar Linear",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "adb78966020355a90442c7ae68c734f1fd6b44b5d935a3f75e531ea666eeee4a",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22070458",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/hefferon-linear-algebra-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "B40",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/hefferon-linear-algebra-id",
        "current_reading_resources": [
          {
            "course_id": "B40",
            "marker": "data-b40-foundations=\"v1\"",
            "href": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/",
            "content_language": "en",
            "labels": {
              "en": "Read the English foundation sections — systems, vector spaces and bases (partial book)",
              "id": "Baca bagian fondasi berbahasa Inggris — sistem linear, ruang vektor, dan basis (sebagian buku)"
            },
            "source_manifest": {
              "path": "docs/en/readers/hefferon-foundations/FOUNDATIONS_MANIFEST.json",
              "bytes": 12972,
              "sha256": "837ccb3a8381340b13d69106cbdc367c3774b2707102526cf5dc463315f5578f"
            },
            "scope": "Six existing English foundation sections, not a full-book or new proof-admission claim.",
            "source_commit": "10ad7843b47cc5871ac481506b23d521ab0ede71",
            "native_source_revision": "df2262e089a02651c127f1dd12649c4622ee1383",
            "availability": "program_hosted_partial_reader",
            "coverage": {
              "sections": 6,
              "native_units": 799,
              "full_book": false,
              "proof_dependency_closure": false
            },
            "native_sections": [
              {
                "section": "gr1",
                "title": "Solving Linear Systems",
                "native_units": 164,
                "reader": {
                  "path": "docs/en/readers/hefferon-foundations/semantic-pilot-gr1/gr1.reader-pilot.html",
                  "bytes": 1504392,
                  "sha256": "19699abd3d1f91dfc8e2bf196c98c27bbd8a2d0e755893b3b4146342e381400a",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/semantic-pilot-gr1/gr1.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-foundations/semantic-pilot-gr1/public-unit-index.json",
                  "bytes": 195046,
                  "sha256": "9da2a978936039d10ad79a4c7954d186714e69787ea1eb57dc5631cc40534576",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/semantic-pilot-gr1/public-unit-index.json"
                }
              },
              {
                "section": "gr3",
                "title": "Reduced Echelon Form",
                "native_units": 88,
                "reader": {
                  "path": "docs/en/readers/hefferon-foundations/semantic-pilot-gr3/gr3.reader-pilot.html",
                  "bytes": 812890,
                  "sha256": "99a3afbaf1d92e4592d86a1d0cdf87684dc9cb6b78551bea945a2f364db1faa4",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/semantic-pilot-gr3/gr3.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-foundations/semantic-pilot-gr3/public-unit-index.json",
                  "bytes": 107391,
                  "sha256": "5aa3ec02e34fc90e35c37fddb841ca251ba34a7eb20696177158199b4671f72b",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/semantic-pilot-gr3/public-unit-index.json"
                }
              },
              {
                "section": "vs1",
                "title": "Vector Spaces",
                "native_units": 160,
                "reader": {
                  "path": "docs/en/readers/hefferon-foundations/semantic-pilot-vs1/vs1.reader-pilot.html",
                  "bytes": 1150261,
                  "sha256": "7e4a9bd80fb7b0cb8e1f1024c916c9618c66d65f7a603a2593bee47520a0358d",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/semantic-pilot-vs1/vs1.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-foundations/semantic-pilot-vs1/public-unit-index.json",
                  "bytes": 198788,
                  "sha256": "bea807ebe1e6dbf1d7b0c282eba581356c19c3209f54cfde8dfcf9f1eb936a76",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/semantic-pilot-vs1/public-unit-index.json"
                }
              },
              {
                "section": "vs2",
                "title": "Linear Independence",
                "native_units": 81,
                "reader": {
                  "path": "docs/en/readers/hefferon-foundations/semantic-pilot-vs2/vs2.reader-pilot.html",
                  "bytes": 631973,
                  "sha256": "5946b029718f9f0a90f655359c36264a7bbb8f7697bffc918e513381c51f507d",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/semantic-pilot-vs2/vs2.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-foundations/semantic-pilot-vs2/public-unit-index.json",
                  "bytes": 95608,
                  "sha256": "b2675be9b3cc0e36a8d6f78f0a4cacaaea996e3ce4fde9dfd200cff7781ff77c",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/semantic-pilot-vs2/public-unit-index.json"
                }
              },
              {
                "section": "vs3",
                "title": "Basis and Dimension",
                "native_units": 291,
                "reader": {
                  "path": "docs/en/readers/hefferon-foundations/semantic-pilot-vs3/vs3.reader-pilot.html",
                  "bytes": 1682206,
                  "sha256": "19693367f0a50fec8e4abf834a62f8dcd42922eb72cb76c327c5229dd71e5a67",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/semantic-pilot-vs3/vs3.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-foundations/semantic-pilot-vs3/public-unit-index.json",
                  "bytes": 650696,
                  "sha256": "29f6fa3de7474a703d75d36a86a58653c94014f6196b414fc224b017103ff76f",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/semantic-pilot-vs3/public-unit-index.json"
                }
              },
              {
                "section": "fields",
                "title": "Fields",
                "native_units": 15,
                "reader": {
                  "path": "docs/en/readers/hefferon-foundations/semantic-pilot-fields/fields.reader-pilot.html",
                  "bytes": 59531,
                  "sha256": "13cb234efc36e8d0ad2708b1409966bbed3df75e888643d6f0d49875ad61124e",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/semantic-pilot-fields/fields.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-foundations/semantic-pilot-fields/public-unit-index.json",
                  "bytes": 43908,
                  "sha256": "83a206d07e373c66ccc98ea026362a51ddbb2edeb4ad5c2a209adca8d47c3bd9",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-foundations/semantic-pilot-fields/public-unit-index.json"
                }
              }
            ]
          },
          {
            "course_id": "B40",
            "marker": "data-b40-expanded=\"v1\"",
            "href": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/",
            "content_language": "en",
            "labels": {
              "en": "Read original English — 34 sections through Complex Vector Spaces (partial book)",
              "id": "Baca teks asli berbahasa Inggris — 34 bagian hingga Ruang Vektor Kompleks (sebagian buku)"
            },
            "source_manifest": {
              "path": "docs/en/readers/hefferon-linear-algebra/READER_MANIFEST.json",
              "bytes": 93411,
              "sha256": "d2e20590a9ea03148979c33a921b17547cffe06ae11cc40183af092c68257653"
            },
            "source_commit": "77ea80a0365e5fc3e3b593f412aa839e839a325e",
            "scope": "Existing 34-section original-English reading edition through Complex Vector Spaces; preserve predecessor and six-section URLs separately. Their scopes overlap rather than add. Not complete-book or proof-admission evidence.",
            "native_source_revision": "df2262e089a02651c127f1dd12649c4622ee1383",
            "availability": "program_hosted_partial_reader",
            "coverage": {
              "sections": 34,
              "native_units": 2592,
              "full_book": false,
              "proof_dependency_closure": false
            },
            "native_sections": [
              {
                "section": "gr1",
                "title": "Linear Systems",
                "native_units": 164,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-gr1/gr1.reader-pilot.html",
                  "bytes": 1504403,
                  "sha256": "b0fef414df44179b06f15bea6e1606db96fb3302bf6d9b0c5f28a7975e20e8f9",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-gr1/gr1.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-gr1/public-unit-index.json",
                  "bytes": 196991,
                  "sha256": "f8fd5a033f7bc5d2d3116bb5b62ee61e6c187d758138f2d290f6d8b8a4871dd0",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-gr1/public-unit-index.json"
                }
              },
              {
                "section": "gr2",
                "title": "Linear Geometry",
                "native_units": 101,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-gr2/gr2.reader-pilot.html",
                  "bytes": 1256572,
                  "sha256": "f3d3ee0ac2f5d3de5c26bab5f1f5c921581fb5a114433f0090957852a8081842",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-gr2/gr2.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-gr2/public-unit-index.json",
                  "bytes": 134331,
                  "sha256": "3a169577ae7f0a2dabd724389aea316a0f7767a2497b8995d62fb43718afe8c9",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-gr2/public-unit-index.json"
                }
              },
              {
                "section": "gr3",
                "title": "Reduced Echelon Form",
                "native_units": 88,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-gr3/gr3.reader-pilot.html",
                  "bytes": 812901,
                  "sha256": "3fc45f70cceac095d21b458f27133a4e2a5af7b01ca495b63c1b4a65df3e3107",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-gr3/gr3.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-gr3/public-unit-index.json",
                  "bytes": 111719,
                  "sha256": "5bf81b89897a8367917aea672fae022ef8befc75d6b2a89f9cd1d85b8417c64b",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-gr3/public-unit-index.json"
                }
              },
              {
                "section": "cas",
                "title": "Computer Algebra Systems",
                "native_units": 30,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-cas/cas.reader-pilot.html",
                  "bytes": 78411,
                  "sha256": "df58a7b0733a014637f4eb409596808a917699070eaf3fe0ca02455b1ec0c125",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-cas/cas.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-cas/public-unit-index.json",
                  "bytes": 31892,
                  "sha256": "3e27a78a41fd8080b916b303d4b7313ec8381353d37cc79bcd55ee402ca02ae6",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-cas/public-unit-index.json"
                }
              },
              {
                "section": "leontief",
                "title": "Input-Output Analysis",
                "native_units": 62,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-leontief/leontief.reader-pilot.html",
                  "bytes": 111974,
                  "sha256": "8ec5ae39bea6f9faf53f54ded0a93b8353f4dc245f27d2b854ac9407beda1ae9",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-leontief/leontief.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-leontief/public-unit-index.json",
                  "bytes": 60201,
                  "sha256": "65a4565493ca303b0a7a2a569c4feee6f99c55e09f95ca31c1f5b1ebb5bc3cd9",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-leontief/public-unit-index.json"
                }
              },
              {
                "section": "ppivot",
                "title": "Accuracy of Computations",
                "native_units": 13,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-ppivot/ppivot.reader-pilot.html",
                  "bytes": 114313,
                  "sha256": "96932e8764d15ec7f682702adeac06f29c3351b4a071b7dd4d6e8b1fb52591f6",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-ppivot/ppivot.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-ppivot/public-unit-index.json",
                  "bytes": 23125,
                  "sha256": "c10a4cefc5c5d7c99f0149291318bd33f1d8939a127198cf1bee512730a6c2ad",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-ppivot/public-unit-index.json"
                }
              },
              {
                "section": "network",
                "title": "Analyzing Networks",
                "native_units": 23,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-network/network.reader-pilot.html",
                  "bytes": 545237,
                  "sha256": "abe03946957fc5c61f31c95d70f4af08d44610fd95d09be6017b337f5dd434f8",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-network/network.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-network/public-unit-index.json",
                  "bytes": 30112,
                  "sha256": "209e4a12f26de4972f09f484965cf6892d59e327882d28b31ce28c53629f9ef2",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-network/public-unit-index.json"
                }
              },
              {
                "section": "vs1",
                "title": "Vector Spaces",
                "native_units": 160,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-vs1/vs1.reader-pilot.html",
                  "bytes": 1150272,
                  "sha256": "8c8733d49bdd50fd1a1e8e46b426b8368f125d35afa4c2662038d556d1dcd916",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-vs1/vs1.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-vs1/public-unit-index.json",
                  "bytes": 210972,
                  "sha256": "ed82c7fab7316bbf82c8857211cbac790d89ea83e71d2cd5156b2310ea0d53c7",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-vs1/public-unit-index.json"
                }
              },
              {
                "section": "vs2",
                "title": "Linear Independence",
                "native_units": 81,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-vs2/vs2.reader-pilot.html",
                  "bytes": 631984,
                  "sha256": "3b4a74243d3f89bed1f9a6e17c46d129056af92a59bda230a1ab8251fbcaa106",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-vs2/vs2.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-vs2/public-unit-index.json",
                  "bytes": 109020,
                  "sha256": "72fcf34a6117c2effe6d2efd744700cf709216d540997cdafb418cee33ac3bef",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-vs2/public-unit-index.json"
                }
              },
              {
                "section": "vs3",
                "title": "Basis and Dimension",
                "native_units": 291,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-vs3/vs3.reader-pilot.html",
                  "bytes": 1682217,
                  "sha256": "c4a0f95f89d8c6637070e17813b8f30bd6dd51dffdef99ef4eab0e419655d694",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-vs3/vs3.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-vs3/public-unit-index.json",
                  "bytes": 673084,
                  "sha256": "893941642ed264c7e708486ad1d21708516ed7c758bf1f1702922081bfd49af6",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-vs3/public-unit-index.json"
                }
              },
              {
                "section": "fields",
                "title": "Fields",
                "native_units": 15,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-fields/fields.reader-pilot.html",
                  "bytes": 59542,
                  "sha256": "d4bf898f1fbfd9d08ec53b7c76cc18b403fa14426fdc8fd6825fb6dfdd792586",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-fields/fields.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-fields/public-unit-index.json",
                  "bytes": 51614,
                  "sha256": "cd205e2f24cf2a14935965e2ec8ebdb9d601be8bac4a4d482dfe5af784859de3",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-fields/public-unit-index.json"
                }
              },
              {
                "section": "crystal",
                "title": "Crystals",
                "native_units": 9,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-crystal/crystal.reader-pilot.html",
                  "bytes": 570137,
                  "sha256": "64ab300653fb2b6c02bcdc73f71ac8ab6c42698245a33562b8b8495d6661f126",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-crystal/crystal.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-crystal/public-unit-index.json",
                  "bytes": 48872,
                  "sha256": "ba75d660e76259808387e44eb615a59a46d71b92b70956eab6b277697a575988",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-crystal/public-unit-index.json"
                }
              },
              {
                "section": "voting",
                "title": "Voting Paradoxes",
                "native_units": 54,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-voting/voting.reader-pilot.html",
                  "bytes": 701071,
                  "sha256": "d5970fd5d358f0be8da46568b39779035350f7fe20ed0fa722b696e5f8c4f5ad",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-voting/voting.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-voting/public-unit-index.json",
                  "bytes": 135899,
                  "sha256": "31bc97210dff4f4d8f88378ca93d64ce04fde016175fb6976e05625905f771fb",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-voting/public-unit-index.json"
                }
              },
              {
                "section": "dimen",
                "title": "Dimensional Analysis",
                "native_units": 27,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-dimen/dimen.reader-pilot.html",
                  "bytes": 237604,
                  "sha256": "06fa4443554a34c53f38d58ae04f76800940417538d320280d40013ce1e20161",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-dimen/dimen.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-dimen/public-unit-index.json",
                  "bytes": 76344,
                  "sha256": "13ec9d10dc7eb538fd6194726df1ec6f6a5497926c0d60d0fd3b4f4a32c5ec52",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-dimen/public-unit-index.json"
                }
              },
              {
                "section": "map1",
                "title": "Maps Between Spaces",
                "native_units": 135,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-map1/map1.reader-pilot.html",
                  "bytes": 1111780,
                  "sha256": "3e5b7fe7cca57620e3ccebe468a426ff52899f4ac7f80e254324627e377e5c5d",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-map1/map1.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-map1/public-unit-index.json",
                  "bytes": 377535,
                  "sha256": "931aaf77189ddad425b79b577e6df64dbc5e0d8ed844a74959875d13a9951ab6",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-map1/public-unit-index.json"
                }
              },
              {
                "section": "map2",
                "title": "Homomorphisms",
                "native_units": 159,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-map2/map2.reader-pilot.html",
                  "bytes": 1201029,
                  "sha256": "43c404b6fd164155315158a1b57440b12779be642b27770005a49f1336163b16",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-map2/map2.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-map2/public-unit-index.json",
                  "bytes": 437342,
                  "sha256": "2da4ff2d68eb15de2ae176118e6427167dfe8558727849e66c26c989c9c5e931",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-map2/public-unit-index.json"
                }
              },
              {
                "section": "map3",
                "title": "Computing Linear Maps",
                "native_units": 123,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-map3/map3.reader-pilot.html",
                  "bytes": 1229540,
                  "sha256": "7f92a2899e0e3322e741fb5772608878288b3225bd394f2c961442a89d7c24ef",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-map3/map3.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-map3/public-unit-index.json",
                  "bytes": 391686,
                  "sha256": "130b69be0b46110978a87649bd7dfdda06f7bf6bb4a37f9a677689afd5ec6c15",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-map3/public-unit-index.json"
                }
              },
              {
                "section": "map4",
                "title": "Matrix Operations",
                "native_units": 254,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-map4/map4.reader-pilot.html",
                  "bytes": 1835135,
                  "sha256": "6ceb3a43d7af734522572a8587cc2353569ff89cf0d8bcbe4eff382b0ec15d78",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-map4/map4.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-map4/public-unit-index.json",
                  "bytes": 713281,
                  "sha256": "8daf75a6129447f4fa26e919e6a1951a231669553220f425925ba00c466df45f",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-map4/public-unit-index.json"
                }
              },
              {
                "section": "map5",
                "title": "Change of Basis",
                "native_units": 111,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-map5/map5.reader-pilot.html",
                  "bytes": 929700,
                  "sha256": "fc9ec2774fe169ef1614af8541dc7473ade6b597891a174ce498d213c72d7b08",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-map5/map5.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-map5/public-unit-index.json",
                  "bytes": 335335,
                  "sha256": "f4341ece300b16a7b1a740a1e2d23e75efb2d56967cfbb4722b65a978ae1b67c",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-map5/public-unit-index.json"
                }
              },
              {
                "section": "map6",
                "title": "Projection",
                "native_units": 152,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-map6/map6.reader-pilot.html",
                  "bytes": 1605188,
                  "sha256": "44fa5c9cc7243fc109156d21979c39fc3e3741fb53db6186905cb95ea7badef5",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-map6/map6.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-map6/public-unit-index.json",
                  "bytes": 465270,
                  "sha256": "70761e63a0a2f1bb69741707e394bf1ae555507f3c1157f9eae45e8a67ac2ffe",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-map6/public-unit-index.json"
                }
              },
              {
                "section": "lstsqs",
                "title": "Line of Best Fit",
                "native_units": 33,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-lstsqs/lstsqs.reader-pilot.html",
                  "bytes": 889427,
                  "sha256": "84623f92089494981514d02dc7bdc9e987dfb8bf5b0aa900ab076f060486b7ad",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-lstsqs/lstsqs.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-lstsqs/public-unit-index.json",
                  "bytes": 182115,
                  "sha256": "e688b5e2e54348230350d850fce2938a7a158d5e76812b1d825c946545bc347d",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-lstsqs/public-unit-index.json"
                }
              },
              {
                "section": "homogeom",
                "title": "Geometry of Linear Maps",
                "native_units": 15,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-homogeom/homogeom.reader-pilot.html",
                  "bytes": 706678,
                  "sha256": "c78afffb8f8a490db0c14d06b851931cc4a13418a8c74ed08f6ab0d29772b800",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-homogeom/homogeom.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-homogeom/public-unit-index.json",
                  "bytes": 120756,
                  "sha256": "8f749c5e66b2ed3b06776ef743927159a0241d210b06d9d5dbf1c93e99f775fa",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-homogeom/public-unit-index.json"
                }
              },
              {
                "section": "magicsqs",
                "title": "Magic Squares",
                "native_units": 13,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-magicsqs/magicsqs.reader-pilot.html",
                  "bytes": 2610482,
                  "sha256": "911e60172195433c58ae974ca085e4cd642a3369681d0cf7ffccd6227612d8ac",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-magicsqs/magicsqs.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-magicsqs/public-unit-index.json",
                  "bytes": 83374,
                  "sha256": "3a99571f64d7f49ebd4033c7d891b33e2f1a3eef717cc2061552e69182ed982f",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-magicsqs/public-unit-index.json"
                }
              },
              {
                "section": "markov",
                "title": "Markov Chains",
                "native_units": 46,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-markov/markov.reader-pilot.html",
                  "bytes": 477813,
                  "sha256": "dff75e6e7ec360f35f8732bd1cc7a9eee6620be5adffad74f62aa21ba405b0b9",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-markov/markov.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-markov/public-unit-index.json",
                  "bytes": 294379,
                  "sha256": "4ebcf21428407bb3f971f08b2bef0748d6b14cdf2c47e32ff5c5c8d765f78e82",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-markov/public-unit-index.json"
                }
              },
              {
                "section": "erlang",
                "title": "Orthonormal Matrices",
                "native_units": 17,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-erlang/erlang.reader-pilot.html",
                  "bytes": 236638,
                  "sha256": "4052e6e24baf9e249a9e2a48dccac835bbe73cb6c57b329804758d3adf975a39",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-erlang/erlang.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-erlang/public-unit-index.json",
                  "bytes": 120172,
                  "sha256": "b08ca0dcc4de8f0d006c18f7a20442c1cffd0fbe13e9f26320efa795d5158350",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-erlang/public-unit-index.json"
                }
              },
              {
                "section": "det1",
                "title": "Determinants",
                "native_units": 213,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-det1/det1.reader-pilot.html",
                  "bytes": 1305764,
                  "sha256": "e3dab1ebd7ed171ce8aea3ef28608e4fc04e21c0d7ec4f1cfab57b6c9e78ff98",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-det1/det1.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-det1/public-unit-index.json",
                  "bytes": 755660,
                  "sha256": "cd6128e7c593f87228559f5b53ae4c07a636bd0be873a3ca6477019ef9703da6",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-det1/public-unit-index.json"
                }
              },
              {
                "section": "det2",
                "title": "Geometry of Determinants",
                "native_units": 62,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-det2/det2.reader-pilot.html",
                  "bytes": 614027,
                  "sha256": "ffa047befa01e8ae25d24cf1065648d6f4a401f2a7866607ff595ecfbe4a8c01",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-det2/det2.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-det2/public-unit-index.json",
                  "bytes": 288215,
                  "sha256": "0bd12b92d1c918aa0f2ec0e69eea6400a460358687db5aa04cbc4d10ed7ef57d",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-det2/public-unit-index.json"
                }
              },
              {
                "section": "det3",
                "title": "Laplace’s Formula",
                "native_units": 52,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-det3/det3.reader-pilot.html",
                  "bytes": 399880,
                  "sha256": "266b6239b09878a07bfe46ce68b3e108716d1e85eb4d0aa30704020197441fe6",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-det3/det3.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-det3/public-unit-index.json",
                  "bytes": 194621,
                  "sha256": "9adce30bacbad5e579ec42b94df8a39dfdb338b4eba4e9b2f28c6235979e4222",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-det3/public-unit-index.json"
                }
              },
              {
                "section": "cramer",
                "title": "Cramer’s Rule",
                "native_units": 17,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-cramer/cramer.reader-pilot.html",
                  "bytes": 137628,
                  "sha256": "c17e466a073b949ce38a42ab49c5b0f21a354fee07ab60f298830be2c4fa349c",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-cramer/cramer.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-cramer/public-unit-index.json",
                  "bytes": 78005,
                  "sha256": "f819543632ebfd963759cf1b577f5dd9f529a96c1f63e0d2177037e69ff97ccc",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-cramer/public-unit-index.json"
                }
              },
              {
                "section": "detspeed",
                "title": "Speed of Calculating Determinants",
                "native_units": 15,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-detspeed/detspeed.reader-pilot.html",
                  "bytes": 103867,
                  "sha256": "988f763b0fe527df08b005b9da835ebab8b99eafebd1d761f7c701a0637f9697",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-detspeed/detspeed.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-detspeed/public-unit-index.json",
                  "bytes": 83294,
                  "sha256": "112ab6cc7a305f0a3d5af002d2d46d570a787ff1197cff2554049c346c1fce2e",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-detspeed/public-unit-index.json"
                }
              },
              {
                "section": "chio",
                "title": "Chiò’s Method",
                "native_units": 11,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-chio/chio.reader-pilot.html",
                  "bytes": 155748,
                  "sha256": "5f2272c9e027df1a548aa0a011d8a49b3835396b1340c03200e806f3515f1bb0",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-chio/chio.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-chio/public-unit-index.json",
                  "bytes": 84178,
                  "sha256": "39164ea0f12455eb2c3f7d77dede9b9f2620f8ceb58284df8382046b9c0456b6",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-chio/public-unit-index.json"
                }
              },
              {
                "section": "projplane",
                "title": "Projective Geometry",
                "native_units": 20,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-projplane/projplane.reader-pilot.html",
                  "bytes": 5007865,
                  "sha256": "af0cc0c1165ed8f009237d269f63d7b9a407f7db893484aa22a454017e10e15e",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-projplane/projplane.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-projplane/public-unit-index.json",
                  "bytes": 129217,
                  "sha256": "159470f507c88c90f63be5203c80c90c5d9c4daa8f72f987fe591fc33c520c67",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-projplane/public-unit-index.json"
                }
              },
              {
                "section": "compgraphics",
                "title": "Computer Graphics",
                "native_units": 11,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-compgraphics/compgraphics.reader-pilot.html",
                  "bytes": 220394,
                  "sha256": "72b46ee1ac3efa02affdbdedac6b2dce1a7c6bd7e37570de896dfe1e7f551b57",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-compgraphics/compgraphics.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-compgraphics/public-unit-index.json",
                  "bytes": 87812,
                  "sha256": "29cf479f1d674b79b741050d141ca280e2bd63533ede74fd68a1ae903aaa7ebe",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-compgraphics/public-unit-index.json"
                }
              },
              {
                "section": "jc1",
                "title": "Complex Vector Spaces",
                "native_units": 15,
                "reader": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-jc1/jc1.reader-pilot.html",
                  "bytes": 86290,
                  "sha256": "2572ccd9d28a09ecd9a4e0e17b9a6d7076cb0ef429b509d5651829885a0d57e9",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-jc1/jc1.reader-pilot.html"
                },
                "native_unit_index": {
                  "path": "docs/en/readers/hefferon-linear-algebra/semantic-pilot-jc1/public-unit-index.json",
                  "bytes": 68609,
                  "sha256": "da7ef540347cab65a0c8d41eebc204e2dc634400e57c2f1d4fa636495ae404a9",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/hefferon-linear-algebra/semantic-pilot-jc1/public-unit-index.json"
                }
              }
            ]
          }
        ],
        "current_human_reading_resources": []
      },
      {
        "id": "B50",
        "kind": "core",
        "level": "B",
        "title": {
          "id": "Kalkulus Multivariabel",
          "en": "Multivariable Calculus"
        },
        "prerequisites": [
          "B30",
          "B40"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B50",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B50"
        },
        "language_access": {
          "en": {
            "course_id": "B50",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B50",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://personal.math.ubc.ca/~CLP/CLP3/clp_3_mc/index.html",
                  "label": "CLP-3: textbook and problems",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22184443/files/CLP-3-Kalkulus-Multivariabel-Bahasa-Indonesia.pdf?download=1",
                "label": "Bahasa Indonesia — Textbook — 410 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 6136187,
                "sha256": "0ce02a3d3fada175c97a8af4ecc6c5b3c4b5d04479bc4f0a9a3e605f2b71fe4d",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22184443/files/CLP-3-Latihan-Kalkulus-Multivariabel-Bahasa-Indonesia.pdf?download=1",
                "label": "Bahasa Indonesia — Problems and solutions — 534 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 5750878,
                "sha256": "ad1d184825fd7ac58933512b62a60997ddcfb2beae87dde5ec679503f31dae2d",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B50.teacher.html",
                "label": "B50 · Perencana tugas CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1982162,
                "sha256": "d78ffcea3821a339e462f998230a4d1f58d0b10feb6541c565524299bddad1b2",
                "source_body_bytes": 1979753,
                "source_body_sha256": "6f06d23d81badf240853a3a0c57c7112f688b179674a43fc84aa1a7a7fa46bde",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B50.html",
                "label": "B50 · Rute baca keluarga CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 6981,
                "sha256": "22efde51b950a3b33727073a1d9b94b32f0319cb16572dfc79472db980668e5a",
                "source_body_bytes": 4578,
                "source_body_sha256": "7490b785052f8ae92bc92cf9baa2b13802ee0323dce13b78a197103d99faa048",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B50.teacher.en.html",
                "label": "B50 · English CLP assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1982121,
                "sha256": "1a0611a69e5ec7ee494edff76a7e2f3164b2514a43daeb6f3ba6eeca01a68cbe",
                "source_body_bytes": 1979716,
                "source_body_sha256": "eafbb7ef6e3d50c7d6709b346d73368ad272ff7d2cb704c3b094ab85fdffbc14",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22184443/files/CLP-3-Kalkulus-Multivariabel-Bahasa-Indonesia-sumber-backend.zip?download=1",
                "label": "Sumber dan backend CLP3 — arsip reproduksibilitas",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "156ffc793249a68e1fbc078ec965d507cdee73150c7a71f4b638d612e40c7d29",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22184443",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "B50",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B50",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/records/22184443/files/CLP-3-Kalkulus-Multivariabel-Bahasa-Indonesia.pdf?download=1",
                  "label": "Buku teks — 410 halaman",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": true,
                  "bytes": 6136187,
                  "sha256": "0ce02a3d3fada175c97a8af4ecc6c5b3c4b5d04479bc4f0a9a3e605f2b71fe4d",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://personal.math.ubc.ca/~CLP/CLP3/clp_3_mc/index.html",
                  "label": "CLP-3: textbook and problems",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22184443/files/CLP-3-Latihan-Kalkulus-Multivariabel-Bahasa-Indonesia.pdf?download=1",
                "label": "Buku soal dan penyelesaian — 534 halaman",
                "label_language": "id",
                "primary": false,
                "offline_after_download": true,
                "bytes": 5750878,
                "sha256": "ad1d184825fd7ac58933512b62a60997ddcfb2beae87dde5ec679503f31dae2d",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B50.teacher.html",
                "label": "B50 · Perencana tugas CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1982162,
                "sha256": "d78ffcea3821a339e462f998230a4d1f58d0b10feb6541c565524299bddad1b2",
                "source_body_bytes": 1979753,
                "source_body_sha256": "6f06d23d81badf240853a3a0c57c7112f688b179674a43fc84aa1a7a7fa46bde",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B50.html",
                "label": "B50 · Rute baca keluarga CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 6981,
                "sha256": "22efde51b950a3b33727073a1d9b94b32f0319cb16572dfc79472db980668e5a",
                "source_body_bytes": 4578,
                "source_body_sha256": "7490b785052f8ae92bc92cf9baa2b13802ee0323dce13b78a197103d99faa048",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B50.teacher.en.html",
                "label": "B50 · English CLP assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1982121,
                "sha256": "1a0611a69e5ec7ee494edff76a7e2f3164b2514a43daeb6f3ba6eeca01a68cbe",
                "source_body_bytes": 1979716,
                "source_body_sha256": "eafbb7ef6e3d50c7d6709b346d73368ad272ff7d2cb704c3b094ab85fdffbc14",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22184443/files/CLP-3-Kalkulus-Multivariabel-Bahasa-Indonesia-sumber-backend.zip?download=1",
                "label": "Sumber dan backend CLP3 — arsip reproduksibilitas",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "156ffc793249a68e1fbc078ec965d507cdee73150c7a71f4b638d612e40c7d29",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22184443",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "B50",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": null,
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "B60",
        "kind": "core",
        "level": "B",
        "title": {
          "id": "Kalkulus Vektor",
          "en": "Vector Calculus"
        },
        "prerequisites": [
          "B50"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B60",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B60"
        },
        "language_access": {
          "en": {
            "course_id": "B60",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B60",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://personal.math.ubc.ca/~CLP/CLP4/clp_4_vc/index.html",
                  "label": "CLP-4: textbook and problems",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22105443/files/CLP-4-Kalkulus-Vektor-Bahasa-Indonesia.pdf?download=1",
                "label": "Bahasa Indonesia — Textbook — 316 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 3758521,
                "sha256": "5ecf6047b63afd4a456cc230f69016aea59d80cd0bd2be73ce24b0000df98b87",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22105443/files/CLP-4-Latihan-Kalkulus-Vektor-Bahasa-Indonesia.pdf?download=1",
                "label": "Bahasa Indonesia — Problems and solutions — 486 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 3939483,
                "sha256": "a6253809eaa4a465d5efcc4372b1321ad828aa4964ec45042aab9130a358835b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B60.teacher.html",
                "label": "B60 · Perencana tugas CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 2853401,
                "sha256": "d4597f88eeb96dc8c002b5f2a1c2fc16001522e6a5d5ca86d133255c3cd4a256",
                "source_body_bytes": 2850992,
                "source_body_sha256": "e28b1b11acbb0e830a71670fd015a131f1a0ff40498b918ca742f3869f5d408e",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B60.html",
                "label": "B60 · Rute baca keluarga CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 6932,
                "sha256": "98015fe4f0bb7b2c7124fa7705135b5e1f677733d148125ea356c692c8378ae6",
                "source_body_bytes": 4529,
                "source_body_sha256": "f1c4fc1036cf1796eb9746572fc15c50ceab4788c9da8a94a370d9e9a6ef42f9",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B60.teacher.en.html",
                "label": "B60 · English CLP assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 2853360,
                "sha256": "4d475cc17e6f2ec868069716218903c457e7b461b34d30f335b550d1feb93a76",
                "source_body_bytes": 2850955,
                "source_body_sha256": "c08a8c2ecd01778e055a9f9a3d14e45559f2ba008e2f5071db53c88d91ff655e",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22105443",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/clp4-vector-calculus-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "B60",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B60",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/records/22105443/files/CLP-4-Kalkulus-Vektor-Bahasa-Indonesia.pdf?download=1",
                  "label": "Buku teks — 316 halaman",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": true,
                  "bytes": 3758521,
                  "sha256": "5ecf6047b63afd4a456cc230f69016aea59d80cd0bd2be73ce24b0000df98b87",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://personal.math.ubc.ca/~CLP/CLP4/clp_4_vc/index.html",
                  "label": "CLP-4: textbook and problems",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22105443/files/CLP-4-Latihan-Kalkulus-Vektor-Bahasa-Indonesia.pdf?download=1",
                "label": "Buku soal dan penyelesaian — 486 halaman",
                "label_language": "id",
                "primary": false,
                "offline_after_download": true,
                "bytes": 3939483,
                "sha256": "a6253809eaa4a465d5efcc4372b1321ad828aa4964ec45042aab9130a358835b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B60.teacher.html",
                "label": "B60 · Perencana tugas CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 2853401,
                "sha256": "d4597f88eeb96dc8c002b5f2a1c2fc16001522e6a5d5ca86d133255c3cd4a256",
                "source_body_bytes": 2850992,
                "source_body_sha256": "e28b1b11acbb0e830a71670fd015a131f1a0ff40498b918ca742f3869f5d408e",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B60.html",
                "label": "B60 · Rute baca keluarga CLP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 6932,
                "sha256": "98015fe4f0bb7b2c7124fa7705135b5e1f677733d148125ea356c692c8378ae6",
                "source_body_bytes": 4529,
                "source_body_sha256": "f1c4fc1036cf1796eb9746572fc15c50ceab4788c9da8a94a370d9e9a6ef42f9",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/clp/B60.teacher.en.html",
                "label": "B60 · English CLP assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 2853360,
                "sha256": "4d475cc17e6f2ec868069716218903c457e7b461b34d30f335b550d1feb93a76",
                "source_body_bytes": 2850955,
                "source_body_sha256": "c08a8c2ecd01778e055a9f9a3d14e45559f2ba008e2f5071db53c88d91ff655e",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22105443",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/clp4-vector-calculus-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "B60",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/clp4-vector-calculus-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "B70",
        "kind": "core",
        "level": "B",
        "title": {
          "id": "Persamaan Diferensial Biasa dan Sistem Dinamika Pengantar",
          "en": "Ordinary Differential Equations and Dynamical Systems"
        },
        "prerequisites": [
          "B30",
          "B40"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B70",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B70"
        },
        "language_access": {
          "en": {
            "course_id": "B70",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B70",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://www.jirka.org/diffyqs/html/diffyqs.html",
                  "label": "Notes on Diffy Qs",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://zenodo.org/records/22182427/files/Catatan_tentang_Diffy_Qs_Bahasa_Indonesia_v6.11.pdf?download=1",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/B70-pengajar.html",
                "label": "Susun rencana kegiatan pengajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1849410,
                "sha256": "83c775ef95468b61a810cfad7cdfeb7300d45c5b58b5f1a47bafadd073412e8c",
                "source_body_bytes": 1847219,
                "source_body_sha256": "e02e90f6f8785254d89e33e903277352f02088ee282f53f098b4dd19d2bca100",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/B70.html",
                "label": "Buku, latihan, dan dukungan sumber",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1715895,
                "sha256": "4ee01d361bda230d71ae953fbcdff17b309ddd024c627cde0db8650f3578b7e5",
                "source_body_bytes": 1713526,
                "source_body_sha256": "f0568d827266451d2eb4bc5b70f7705b2686e9319f6e8591d916c8b8a92850a3",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/istilah.html",
                "label": "Istilah dan alternatif keluarga Lebl",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 322515,
                "sha256": "417690481aaebc6b78c229912bd7f3e9f8a477b65a02a389020dd16254eb5920",
                "source_body_bytes": 316360,
                "source_body_sha256": "f3cd7363b2af9c8e47e6d50415b24030573d1f5af593e157d6b19f7c36f51c4b",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22182427",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/lebl-mathematics-family-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "B70",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B70",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://zenodo.org/records/22182427/files/Catatan_tentang_Diffy_Qs_Bahasa_Indonesia_v6.11.pdf?download=1",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://www.jirka.org/diffyqs/html/diffyqs.html",
                  "label": "Notes on Diffy Qs",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/B70-pengajar.html",
                "label": "Susun rencana kegiatan pengajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1849410,
                "sha256": "83c775ef95468b61a810cfad7cdfeb7300d45c5b58b5f1a47bafadd073412e8c",
                "source_body_bytes": 1847219,
                "source_body_sha256": "e02e90f6f8785254d89e33e903277352f02088ee282f53f098b4dd19d2bca100",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/B70.html",
                "label": "Buku, latihan, dan dukungan sumber",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1715895,
                "sha256": "4ee01d361bda230d71ae953fbcdff17b309ddd024c627cde0db8650f3578b7e5",
                "source_body_bytes": 1713526,
                "source_body_sha256": "f0568d827266451d2eb4bc5b70f7705b2686e9319f6e8591d916c8b8a92850a3",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/istilah.html",
                "label": "Istilah dan alternatif keluarga Lebl",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 322515,
                "sha256": "417690481aaebc6b78c229912bd7f3e9f8a477b65a02a389020dd16254eb5920",
                "source_body_bytes": 316360,
                "source_body_sha256": "f3cd7363b2af9c8e47e6d50415b24030573d1f5af593e157d6b19f7c36f51c4b",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22182427",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/lebl-mathematics-family-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "B70",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/lebl-mathematics-family-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "B80",
        "kind": "core",
        "level": "B",
        "title": {
          "id": "Komputasi Matematis dan Eksperimen Reprodusibel",
          "en": "Mathematical Computing and Reproducible Experiments"
        },
        "prerequisites": [
          "A30"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B80",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B80"
        },
        "language_access": {
          "en": {
            "course_id": "B80",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B80",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/",
                  "label": "Mathematical Computing — complete English HTML reader",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 40293,
                  "sha256": "2949e3e489008999193f6c396e78a79771e98a1cee3b3c7232abbd076f21dff8",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/Mathematical-Computing-and-Reproducible-Experiments.pdf",
                  "label": "Mathematical Computing — English PDF — 161 pages",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": true,
                  "bytes": 774069,
                  "sha256": "12aedcef4d00df81f4d269ac14eb7fc545fbfc057572b6942f15303506e604b2",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "program-authority",
                  "relation_to_source": "source",
                  "content_language": "id",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-id/",
                  "label": "Komputasi Matematis dan Eksperimen Reprodusibel",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "en",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22210474",
                "label": "Complete English computing edition archive",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "original-work",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22053905/files/Komputasi-Matematis-dan-Eksperimen-yang-Dapat-Direproduksi.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b80/B80-pengajar.html",
                "label": "Panduan kegiatan untuk pengajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 23765,
                "sha256": "fe737cd2e62373c1b660f576b224e3209802c7d21ae47cec5b7007bcc10561c5",
                "source_body_bytes": 21444,
                "source_body_sha256": "5b5177695c9acc11adb10150bc05a33e0f30499070ea77de0c6d67ae5f8fd9dd",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b80/B80.html",
                "label": "Unit, latihan, dan pemeriksaan",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 71396,
                "sha256": "7c1eb344f64272742d28757080bb773b8d81d6fe748e3bf8f9ec6f5e7c69a69c",
                "source_body_bytes": 69057,
                "source_body_sha256": "80a88a064c58c1e8aeb75cd7f4d0f2ae870cf63072cb6142dcca60588a15f9ea",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b80-en/B80.html",
                "label": "B80 · English learner and exercise map",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 62873,
                "sha256": "5afcc2099b420dde81ba4e0350bd2e8405d4730299253418d1f56f2d4378daa9",
                "source_body_bytes": 60526,
                "source_body_sha256": "c1b5bc2d05e40a12c0592114d018570cab47a2f75a836052e4d4c446e60606c5",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b80-en/B80-educator.html",
                "label": "B80 · English educator map",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 27604,
                "sha256": "f2a898fa3a01b2a1ab57ba6ad98db2de3043d3ae1990529bf290c200e3b672da",
                "source_body_bytes": 25275,
                "source_body_sha256": "7581ce1eeebb4072e41c1b8db27a24ad380d2677f0b7fbcb500e9a8894ed3242",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22053905",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/mathematical-computing-reproducible-experiments-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "B80",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B80",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "original-work",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "original-work",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22053905/files/Komputasi-Matematis-dan-Eksperimen-yang-Dapat-Direproduksi.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "program-authority",
                  "relation_to_source": "source",
                  "content_language": "id",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-id/",
                  "label": "Komputasi Matematis dan Eksperimen Reprodusibel",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/",
                "label": "Mathematical Computing — complete English HTML reader",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 40293,
                "sha256": "2949e3e489008999193f6c396e78a79771e98a1cee3b3c7232abbd076f21dff8",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "PDF",
                "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/Mathematical-Computing-and-Reproducible-Experiments.pdf",
                "label": "Mathematical Computing — English PDF — 161 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 774069,
                "sha256": "12aedcef4d00df81f4d269ac14eb7fc545fbfc057572b6942f15303506e604b2",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "en",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22210474",
                "label": "Complete English computing edition archive",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b80/B80-pengajar.html",
                "label": "Panduan kegiatan untuk pengajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 23765,
                "sha256": "fe737cd2e62373c1b660f576b224e3209802c7d21ae47cec5b7007bcc10561c5",
                "source_body_bytes": 21444,
                "source_body_sha256": "5b5177695c9acc11adb10150bc05a33e0f30499070ea77de0c6d67ae5f8fd9dd",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b80/B80.html",
                "label": "Unit, latihan, dan pemeriksaan",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 71396,
                "sha256": "7c1eb344f64272742d28757080bb773b8d81d6fe748e3bf8f9ec6f5e7c69a69c",
                "source_body_bytes": 69057,
                "source_body_sha256": "80a88a064c58c1e8aeb75cd7f4d0f2ae870cf63072cb6142dcca60588a15f9ea",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b80-en/B80.html",
                "label": "B80 · English learner and exercise map",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 62873,
                "sha256": "5afcc2099b420dde81ba4e0350bd2e8405d4730299253418d1f56f2d4378daa9",
                "source_body_bytes": 60526,
                "source_body_sha256": "c1b5bc2d05e40a12c0592114d018570cab47a2f75a836052e4d4c446e60606c5",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b80-en/B80-educator.html",
                "label": "B80 · English educator map",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 27604,
                "sha256": "f2a898fa3a01b2a1ab57ba6ad98db2de3043d3ae1990529bf290c200e3b672da",
                "source_body_bytes": 25275,
                "source_body_sha256": "7581ce1eeebb4072e41c1b8db27a24ad380d2677f0b7fbcb500e9a8894ed3242",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22053905",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/mathematical-computing-reproducible-experiments-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "B80",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/mathematical-computing-reproducible-experiments-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "B90",
        "kind": "core",
        "level": "B",
        "title": {
          "id": "Probabilitas Berbasis Kalkulus",
          "en": "Calculus-Based Probability"
        },
        "prerequisites": [
          "B30"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B90",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B90"
        },
        "language_access": {
          "en": {
            "course_id": "B90",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B90",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://math.dartmouth.edu/~prob/prob/prob.pdf",
                  "label": "Grinstead–Snell: Introduction to Probability",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/introduction-to-probability-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22062144/files/PENGANTAR_PELUANG_GRINSTEAD_SNELL_ID.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b90/B90.html",
                "label": "B90 · Probabilitas Berbasis Kalkulus",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 125243,
                "sha256": "a3cdb2c5b2b8c10cba20860e526458ab3f44b00b90f6138c9667a06c1fdd188b",
                "source_body_bytes": 122978,
                "source_body_sha256": "2a6e1f55ea03ca4b39fa77492f180bdd62734f8c890e68c6cdb9afa378079208",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22062144",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/introduction-to-probability-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "B90",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B90",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/introduction-to-probability-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22062144/files/PENGANTAR_PELUANG_GRINSTEAD_SNELL_ID.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://math.dartmouth.edu/~prob/prob/prob.pdf",
                  "label": "Grinstead–Snell: Introduction to Probability",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b90/B90.html",
                "label": "B90 · Probabilitas Berbasis Kalkulus",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 125243,
                "sha256": "a3cdb2c5b2b8c10cba20860e526458ab3f44b00b90f6138c9667a06c1fdd188b",
                "source_body_bytes": 122978,
                "source_body_sha256": "2a6e1f55ea03ca4b39fa77492f180bdd62734f8c890e68c6cdb9afa378079208",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22062144",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/introduction-to-probability-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "B90",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/introduction-to-probability-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "B95",
        "kind": "core",
        "level": "B",
        "title": {
          "id": "Statistika Terapan dan Analisis Data",
          "en": "Applied Statistics and Data Analysis"
        },
        "prerequisites": [
          "A30",
          "B90"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B95",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B95"
        },
        "language_access": {
          "en": {
            "course_id": "B95",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-B95",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://www.openintro.org/book/os/",
                  "label": "OpenIntro Statistics, 4th edition",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22261912/files/00_STATISTIKA_BERBASIS_DATA_ID_R011-B039_WORKING_READER.pdf?download=1",
                "label": "Bahasa Indonesia — Complete textbook — 462 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 57049904,
                "sha256": "7ef1ed4390cd846cc636345d34a1ba3765f8afc32eb9446fd60c7862b7fde049",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b95/B95.html",
                "label": "B95 · Statistika Terapan dan Analisis Data",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 35268,
                "sha256": "0c4cf3969d4809f181a54a1bf2c586de309ee36a8929b52666fa42807e2a9a8a",
                "source_body_bytes": 33053,
                "source_body_sha256": "8205713dffdd42846426b681499fbb991a8beba4157cf9eedbac3e338f80ce22",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22261912",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/statistika-berbasis-data-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-navigation",
                "relation_to_source": "navigates-to",
                "content_language": "id",
                "media_type": "gateway",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/B95/",
                "label": "Course HTML gateway — central route",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 6046,
                "sha256": "be44a7998dc9759e3585061d28d7edf4a1d9f3d31c6d97c2cbe4d29bcf120166",
                "source_body_bytes": 4001,
                "source_body_sha256": "18983c0a8152176d4378d8b3d059dea6c7ee10aa1a04c813b62f5d3c69f1c262",
                "hosted_navigation_overlay": "v1"
              }
            ]
          },
          "id": {
            "course_id": "B95",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-B95",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/records/22261912/files/00_STATISTIKA_BERBASIS_DATA_ID_R011-B039_WORKING_READER.pdf?download=1",
                  "label": "Buku teks lengkap — 462 halaman",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": true,
                  "bytes": 57049904,
                  "sha256": "7ef1ed4390cd846cc636345d34a1ba3765f8afc32eb9446fd60c7862b7fde049",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://www.openintro.org/book/os/",
                  "label": "OpenIntro Statistics, 4th edition",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/b95/B95.html",
                "label": "B95 · Statistika Terapan dan Analisis Data",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 35268,
                "sha256": "0c4cf3969d4809f181a54a1bf2c586de309ee36a8929b52666fa42807e2a9a8a",
                "source_body_bytes": 33053,
                "source_body_sha256": "8205713dffdd42846426b681499fbb991a8beba4157cf9eedbac3e338f80ce22",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22261912",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/statistika-berbasis-data-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-navigation",
                "relation_to_source": "navigates-to",
                "content_language": "id",
                "media_type": "gateway",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/B95/",
                "label": "Gerbang HTML mata kuliah — rute pusat",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 6046,
                "sha256": "be44a7998dc9759e3585061d28d7edf4a1d9f3d31c6d97c2cbe4d29bcf120166",
                "source_body_bytes": 4001,
                "source_body_sha256": "18983c0a8152176d4378d8b3d059dea6c7ee10aa1a04c813b62f5d3c69f1c262",
                "hosted_navigation_overlay": "v1"
              }
            ]
          }
        },
        "capsule": {
          "id": "B95",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": null,
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "C10",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Analisis Real I",
          "en": "Real Analysis I"
        },
        "prerequisites": [
          "B10",
          "B30"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C10",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C10"
        },
        "language_access": {
          "en": {
            "course_id": "C10",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C10",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://www.jirka.org/ra/html/rn_chapter.html",
                  "label": "Basic Analysis I",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://zenodo.org/records/22182427/files/Analisis_Dasar_I_Bahasa_Indonesia_v6.3.pdf?download=1",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/C10-pengajar.html",
                "label": "Susun rencana kegiatan pengajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1233613,
                "sha256": "fafcd2bffb5e57b62a2b1d2655885c9ddd3db7d8300b43a3e2be769110834ace",
                "source_body_bytes": 1231428,
                "source_body_sha256": "d715d6b4c14ac9896a248a392ae300ba6d0e1fc9672a6eb0965975f3d2f6b872",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/C10.html",
                "label": "Buku, latihan, dan dukungan sumber",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1135743,
                "sha256": "d9647f84c2a241234ea9270498bc8720d5354f879a7b3d91d1250df0edbb3a5c",
                "source_body_bytes": 1133380,
                "source_body_sha256": "d43f754c3647ab6287291a9c731396219d43db07aab9122e6261b63bf0092d02",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/istilah.html",
                "label": "Istilah dan alternatif keluarga Lebl",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 322515,
                "sha256": "417690481aaebc6b78c229912bd7f3e9f8a477b65a02a389020dd16254eb5920",
                "source_body_bytes": 316360,
                "source_body_sha256": "f3cd7363b2af9c8e47e6d50415b24030573d1f5af593e157d6b19f7c36f51c4b",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22182427",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/lebl-mathematics-family-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C10",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C10",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://zenodo.org/records/22182427/files/Analisis_Dasar_I_Bahasa_Indonesia_v6.3.pdf?download=1",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://www.jirka.org/ra/html/rn_chapter.html",
                  "label": "Basic Analysis I",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/C10-pengajar.html",
                "label": "Susun rencana kegiatan pengajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1233613,
                "sha256": "fafcd2bffb5e57b62a2b1d2655885c9ddd3db7d8300b43a3e2be769110834ace",
                "source_body_bytes": 1231428,
                "source_body_sha256": "d715d6b4c14ac9896a248a392ae300ba6d0e1fc9672a6eb0965975f3d2f6b872",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/C10.html",
                "label": "Buku, latihan, dan dukungan sumber",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1135743,
                "sha256": "d9647f84c2a241234ea9270498bc8720d5354f879a7b3d91d1250df0edbb3a5c",
                "source_body_bytes": 1133380,
                "source_body_sha256": "d43f754c3647ab6287291a9c731396219d43db07aab9122e6261b63bf0092d02",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/istilah.html",
                "label": "Istilah dan alternatif keluarga Lebl",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 322515,
                "sha256": "417690481aaebc6b78c229912bd7f3e9f8a477b65a02a389020dd16254eb5920",
                "source_body_bytes": 316360,
                "source_body_sha256": "f3cd7363b2af9c8e47e6d50415b24030573d1f5af593e157d6b19f7c36f51c4b",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22182427",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/lebl-mathematics-family-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C10",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/lebl-mathematics-family-id",
        "current_reading_resources": [],
        "current_human_reading_resources": [
          {
            "id": "human.lebl.analysis.sec_rintprop",
            "titles": {
              "en": "Properties of the integral",
              "id": "Sifat-sifat integral"
            },
            "course_ids": [
              "C10"
            ],
            "content_language": "en",
            "reader": {
              "url": "https://www.jirka.org/ra/html/sec_rintprop.html",
              "bytes": 88036,
              "sha256": "160b59e87ceda09d392bf73621b75aef72344aec1f928f18640977aaa84afb58"
            },
            "source": {
              "archive": "https://www.jirka.org/ra/",
              "member": "ch-riemann.tex",
              "sha256": "d6f8e5b1e5425036a9e5dfbd300e4b9df795e6a79900c58333bf3eac1990c9e6",
              "label": "sec:rintprop"
            },
            "author": "Jiří Lebl",
            "licence": "CC-BY-SA-4.0",
            "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
            "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
            "anchors": [
              "ptx-content",
              "sec_rintprop",
              "sec_rintprop-2",
              "sec_rintprop-2-1",
              "sec_rintprop-3",
              "sec_rintprop-3-2",
              "lemma_darbouxadd",
              "lemma_darbouxadd-1-1",
              "lemma_darbouxadd-1-1-3",
              "sec_rintprop-3-4",
              "sec_rintprop-3-4-1",
              "sec_rintprop-3-4-1-7",
              "sec_rintprop-3-4-1-25",
              "sec_rintprop-3-4-2",
              "sec_rintprop-3-4-2-4",
              "sec_rintprop-3-4-2-20",
              "sec_rintprop-3-5",
              "sec_rintprop-3-5-1-1",
              "sec_rintprop-3-5-1-1-7",
              "sec_rintprop-3-6",
              "sec_rintprop-3-6-1",
              "sec_rintprop-3-6-1-3",
              "sec_rintprop-3-6-1-4",
              "sec_rintprop-3-6-1-7",
              "sec_rintprop-3-6-2",
              "sec_rintprop-3-6-2-4",
              "sec_rintprop-3-7",
              "intsubcor",
              "intsubcor-1-1",
              "sec_rintprop-4",
              "sec_rintprop-4-2",
              "prop_integrallinear",
              "prop_integrallinear-3-1",
              "prop_integrallinear-3-2",
              "prop_integrallinear-3-2-1",
              "prop_integrallinear-3-2-1-1",
              "prop_integrallinear-3-2-1-1-3",
              "prop_integrallinear-3-2-2",
              "prop_integrallinear-3-2-2-1",
              "prop_integrallinear-3-2-2-1-3",
              "sec_rintprop-4-4",
              "sec_rintprop-4-4-1",
              "sec_rintprop-4-4-1-7",
              "sec_rintprop-4-4-1-8",
              "sec_rintprop-4-4-1-9",
              "sec_rintprop-4-4-1-12",
              "sec_rintprop-4-4-1-13",
              "sec_rintprop-4-4-2",
              "sec_rintprop-4-4-3",
              "sec_rintprop-4-5",
              "prop_upperlowerlinineq",
              "prop_upperlowerlinineq-1-1",
              "prop_upperlowerlinineq-1-1-3",
              "sec_rintprop-4-7",
              "sec_rintprop-4-8",
              "sec_rintprop-4-8-3-1",
              "sec_rintprop-4-8-3-1-5",
              "sec_rintprop-4-8-3-1-9",
              "sec_rintprop-4-9",
              "sec_rintprop-4-9-1",
              "sec_rintprop-4-9-1-3",
              "sec_rintprop-4-9-1-6",
              "sec_rintprop-4-9-1-9",
              "sec_rintprop-5",
              "sec_rintprop-5-2",
              "lemma_contint",
              "lemma_contint-1-1",
              "sec_rintprop-5-4",
              "sec_rintprop-5-4-1",
              "sec_rintprop-5-4-2",
              "sec_rintprop-5-4-2-10",
              "sec_rintprop-5-4-2-19",
              "sec_rintprop-5-4-2-20",
              "sec_rintprop-5-4-2-22",
              "sec_rintprop-5-5",
              "lemma_boundedimpriemann",
              "lemma_boundedimpriemann-1-1",
              "lemma_boundedimpriemann-1-1-11",
              "sec_rintprop-5-7",
              "sec_rintprop-5-7-1",
              "sec_rintprop-5-7-1-4",
              "sec_rintprop-5-7-2",
              "sec_rintprop-5-7-2-4",
              "sec_rintprop-5-7-2-7",
              "sec_rintprop-5-7-3",
              "sec_rintprop-5-7-3-1",
              "sec_rintprop-5-7-3-3",
              "sec_rintprop-5-7-4",
              "sec_rintprop-5-8",
              "sec_rintprop-5-9",
              "sec_rintprop-5-9-1-1",
              "sec_rintprop-5-10",
              "sec_rintprop-5-10-1",
              "sec_rintprop-6",
              "sec_rintprop-6-2",
              "sec_rintprop-6-3",
              "sec_rintprop-6-3-1-1",
              "sec_rintprop-6-3-1-1-7",
              "sec_rintprop-6-4",
              "sec_rintprop-6-4-1",
              "sec_rintprop-6-4-2",
              "sec_rintprop-6-5",
              "prop_monotoneintegrable",
              "prop_monotoneintegrable-1-1",
              "sec_rintprop-7",
              "exercise_proofoflinpropparti",
              "exercise_proofoflinpropparti-1-1",
              "exercise_proofoflinpropparti-1-1-6",
              "exercise_proofoflinproppartii",
              "exercise_proofoflinproppartii-1-1",
              "exercise_proofoflinproppartii-1-1-8",
              "exercise_changeendpointsintegral",
              "exercise_changeendpointsintegral-1-1",
              "exercise_changeendpointsintegral-1-1-6",
              "sec_rintprop-7-4",
              "sec_rintprop-7-4-1-1",
              "sec_rintprop-7-5",
              "sec_rintprop-7-5-1-1",
              "sec_rintprop-7-6",
              "sec_rintprop-7-6-1-1",
              "sec_rintprop-7-7",
              "sec_rintprop-7-7-1-1",
              "sec_rintprop-7-8",
              "sec_rintprop-7-8-1-1",
              "sec_rintprop-7-8-1-1-4",
              "sec_rintprop-7-9",
              "sec_rintprop-7-9-1-1",
              "exercise_easyabsint",
              "exercise_easyabsint-1-1",
              "exercise_easyabsint-1-1-4",
              "sec_rintprop-7-11",
              "sec_rintprop-7-11-1-1",
              "sec_rintprop-7-11-1-2",
              "sec_rintprop-7-11-1-2-4",
              "sec_rintprop-7-12",
              "sec_rintprop-7-12-2",
              "exercise_stepfunctionintegrable",
              "exercise_stepfunctionintegrable-1-1",
              "sec_rintprop-7-14",
              "sec_rintprop-7-14-3",
              "sec_rintprop-7-15",
              "sec_rintprop-7-15-1-1",
              "exercise_boundedvariationintegrable",
              "exercise_boundedvariationintegrable-1-1",
              "exercise_boundedvariationintegrable-1-2",
              "exercise_boundedvariationintegrable-1-2-1",
              "exercise_boundedvariationintegrable-1-2-1-1",
              "exercise_boundedvariationintegrable-1-2-2",
              "exercise_boundedvariationintegrable-1-2-2-1",
              "exercise_boundedvariationintegrable-1-2-3",
              "exercise_boundedvariationintegrable-1-2-3-1",
              "exercise_boundedvariationintegrable-1-2-3-1-1",
              "exercise_boundedvariationintegrable-1-2-3-1-1",
              "exercise_hardabsint",
              "exercise_hardabsint-1-1",
              "exercise_upperlowerlinineq",
              "exercise_upperlowerlinineq-1-1",
              "exercise_upperlowerlinineq-1-2",
              "exercise_upperlowerlinineq-1-2-1",
              "exercise_upperlowerlinineq-1-2-1-1",
              "exercise_upperlowerlinineq-1-2-2",
              "exercise_upperlowerlinineq-1-2-2-1",
              "sec_rintprop-7-19",
              "sec_rintprop-7-19-1-1",
              "sec_rintprop-7-19-1-1-3",
              "exercise_rieleblem",
              "exercise_rieleblem-1-1",
              "exercise_rieleblem-1-1-4",
              "ptx-content-footer"
            ],
            "relation": "supplementary_reading",
            "mathematical_consumer_equivalence": "not_inferred",
            "whole_course_completion": false
          },
          {
            "id": "human.lebl.analysis.sec_rint",
            "titles": {
              "en": "The Riemann integral",
              "id": "Integral Riemann"
            },
            "course_ids": [
              "C10",
              "B30"
            ],
            "content_language": "en",
            "reader": {
              "url": "https://www.jirka.org/ra/html/sec_rint.html",
              "bytes": 84921,
              "sha256": "e50422b32a44b596fd10dab64510c85b0d7ed7876169fb99d008ef32cbd97c79"
            },
            "source": {
              "archive": "https://www.jirka.org/ra/",
              "member": "ch-riemann.tex",
              "sha256": "d6f8e5b1e5425036a9e5dfbd300e4b9df795e6a79900c58333bf3eac1990c9e6",
              "label": "sec:rint"
            },
            "author": "Jiří Lebl",
            "licence": "CC-BY-SA-4.0",
            "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
            "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
            "anchors": [
              "ptx-content",
              "sec_rint",
              "sec_rint-2",
              "sec_rint-2-1",
              "sec_rint-2-2",
              "sec_rint-2-2-5",
              "sec_rint-2-2-5",
              "sec_rint-2-2-6",
              "sec_rint-2-2-6",
              "sec_rint-3",
              "sec_rint-3-2",
              "sec_rint-3-3",
              "sec_rint-3-3-1-1",
              "sec_rint-3-3-1-1-5",
              "sec_rint-3-3-1-1-6",
              "sec_rint-3-3-1-1-10",
              "sec_rint-3-4",
              "darbouxfig",
              "sumulbound_prop",
              "sumulbound_prop-1-1",
              "sumulbound_eq",
              "sec_rint-3-9",
              "sec_rint-3-9-1",
              "sec_rint-3-9-1-6",
              "sec_rint-3-10",
              "sec_rint-3-10-1-1",
              "sec_rint-3-10-1-1-1",
              "sec_rint-3-10-1-1-7",
              "sec_rint-3-11",
              "example_dirichletfunc",
              "example_dirichletfunc-1-1",
              "example_dirichletfunc-1-1-7",
              "example_dirichletfunc-1-1-12",
              "sec_rint-3-13",
              "sec_rint-3-13-1-1",
              "sec_rint-3-14",
              "sec_rint-3-15",
              "sec_rint-3-15-1-1",
              "sec_rint-3-16",
              "prop_refinement",
              "prop_refinement-1-1",
              "prop_refinement-1-1-6",
              "sec_rint-3-18",
              "sec_rint-3-18-1",
              "sec_rint-3-18-2",
              "sec_rint-3-18-2-4",
              "fig_refinement",
              "sec_rint-3-18-6",
              "sec_rint-3-18-6-6",
              "sec_rint-3-18-6-7",
              "sec_rint-3-18-7",
              "sec_rint-3-19",
              "intulbound_prop",
              "intulbound_prop-1-1",
              "intulbound_eq",
              "sec_rint-3-21",
              "sec_rint-3-21-1",
              "sec_rint-3-21-1-3",
              "sec_rint-3-21-2",
              "sec_rint-3-21-2-12",
              "sec_rint-3-21-2-17",
              "sec_rint-4",
              "sec_rint-4-2",
              "sec_rint-4-3",
              "sec_rint-4-3-1-1",
              "sec_rint-4-3-1-1-2",
              "sec_rint-4-3-1-1-8",
              "sec_rint-4-3-1-1-9",
              "sec_rint-4-4",
              "intbound_prop",
              "intbound_prop-1-1",
              "intbound_prop-1-1-5",
              "fig_integralminmax",
              "sec_rint-4-9",
              "sec_rint-4-9-3",
              "sec_rint-4-10",
              "sec_rint-4-10-1-1",
              "sec_rint-4-11",
              "sec_rint-4-11-1-1",
              "sec_rint-4-11-1-1-2",
              "sec_rint-4-11-1-2",
              "sec_rint-4-11-1-2-3",
              "darbouxfigstep",
              "sec_rint-4-11-1-6",
              "sec_rint-4-11-1-6-1",
              "sec_rint-4-11-1-6-2",
              "sec_rint-4-11-1-6-8",
              "sec_rint-4-12",
              "sec_rint-4-13",
              "sec_rint-4-13-1-1",
              "sec_rint-4-13-1-1-6",
              "sec_rint-4-14",
              "sec_rint-4-14-1",
              "sec_rint-4-14-1-3",
              "sec_rint-4-15",
              "sec_rint-4-15-1-1",
              "sec_rint-4-15-1-2",
              "sec_rint-4-15-1-2-10",
              "sec_rint-4-15-1-2-11",
              "sec_rint-4-16",
              "sec_rint-4-16-1-1",
              "sec_rint-5",
              "sec_rint-5-2",
              "sec_rint-5-3",
              "sec_rint-5-3-5",
              "sec_rint-5-3-7",
              "sec_rint-5-4",
              "sec_rint-5-4-2",
              "sec_rint-6",
              "sec_rint-6-1",
              "sec_rint-6-1-1-1",
              "sec_rint-6-2",
              "sec_rint-6-2-1-1",
              "sec_rint-6-3",
              "sec_rint-6-3-1-1",
              "sec_rint-6-3-1-1-4",
              "sec_rint-6-3-1-1-6",
              "sec_rint-6-4",
              "sec_rint-6-4-1-1",
              "sec_rint-6-5",
              "sec_rint-6-5-1-1",
              "sec_rint-6-5-1-1-2",
              "sec_rint-6-6",
              "sec_rint-6-6-1-1",
              "sec_rint-6-6-1-1-4",
              "exercise_taggedpartition",
              "exercise_taggedpartition-1-1",
              "exercise_taggedpartition-1-1-7",
              "sec_rint-6-8",
              "sec_rint-6-8-1-1",
              "sec_rint-6-9",
              "sec_rint-6-9-1-1",
              "sec_rint-6-10",
              "sec_rint-6-10-1-1",
              "sec_rint-6-11",
              "sec_rint-6-11-1-1",
              "sec_rint-6-11-1-2",
              "sec_rint-6-11-1-2-1",
              "sec_rint-6-11-1-2-1-1",
              "sec_rint-6-11-1-2-2",
              "sec_rint-6-11-1-2-2-1",
              "exercise_riemannintdarboux",
              "exercise_riemannintdarboux-1-1",
              "sec_rint-6-13",
              "sec_rint-6-13-1-1",
              "sec_rint-6-14",
              "sec_rint-6-14-1-1",
              "sec_rint-6-15",
              "sec_rint-6-15-1-1",
              "ptx-content-footer"
            ],
            "relation": "supplementary_reading",
            "mathematical_consumer_equivalence": "not_inferred",
            "whole_course_completion": false
          },
          {
            "id": "human.lebl.analysis.sec_ftc",
            "titles": {
              "en": "Fundamental theorem of calculus",
              "id": "Teorema dasar kalkulus"
            },
            "course_ids": [
              "C10",
              "B30"
            ],
            "content_language": "en",
            "reader": {
              "url": "https://www.jirka.org/ra/html/sec_ftc.html",
              "bytes": 62516,
              "sha256": "1e3f3c4a7fa5d456fbc17932a1119e8f066372813accf429910ce426d1f28d79"
            },
            "source": {
              "archive": "https://www.jirka.org/ra/",
              "member": "ch-riemann.tex",
              "sha256": "d6f8e5b1e5425036a9e5dfbd300e4b9df795e6a79900c58333bf3eac1990c9e6",
              "label": "sec:ftc"
            },
            "author": "Jiří Lebl",
            "licence": "CC-BY-SA-4.0",
            "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
            "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
            "anchors": [
              "ptx-content",
              "sec_ftc",
              "sec_ftc-2",
              "sec_ftc-2-1",
              "sec_ftc-2-2",
              "sec_ftc-3",
              "thm_FTCv1",
              "thm_FTCv1-1-1",
              "thm_FTCv1-1-1-6",
              "sec_ftc-3-3",
              "sec_ftc-3-4",
              "sec_ftc-3-4-1",
              "sec_ftc-3-4-1-6",
              "fig_fundthmfig",
              "sec_ftc-3-4-5",
              "sec_ftc-3-4-5-3",
              "sec_ftc-3-4-5-5",
              "sec_ftc-3-4-5-7",
              "sec_ftc-3-4-5-10",
              "sec_ftc-3-4-5-13",
              "sec_ftc-3-4-5-15",
              "sec_ftc-3-5",
              "sec_ftc-3-6",
              "sec_ftc-3-6-1-1",
              "sec_ftc-3-6-1-1-1",
              "sec_ftc-3-6-1-1-4",
              "sec_ftc-4",
              "sec_ftc-4-2",
              "thm_FTCv2",
              "thm_FTCv2-1-1",
              "thm_FTCv2-1-1-2",
              "sec_ftc-4-4",
              "sec_ftc-4-4-1",
              "sec_ftc-4-4-1-7",
              "sec_ftc-4-4-2",
              "sec_ftc-4-4-2-9",
              "sec_ftc-4-4-2-11",
              "sec_ftc-4-4-2-14",
              "sec_ftc-4-4-2-15",
              "sec_ftc-4-4-2-16",
              "sec_ftc-4-5",
              "remark_fundthmbase",
              "remark_fundthmbase-1-1",
              "remark_fundthmbase-1-1-2",
              "sec_ftc-4-7",
              "sec_ftc-4-8",
              "sec_ftc-4-8-3",
              "sec_ftc-4-9",
              "sec_ftc-4-9-2",
              "sec_ftc-5",
              "sec_ftc-5-2",
              "sec_ftc-5-3",
              "sec_ftc-5-3-3-1",
              "sec_ftc-5-3-3-1-4",
              "sec_ftc-5-4",
              "sec_ftc-5-4-1",
              "sec_ftc-5-4-2",
              "sec_ftc-5-4-2-2",
              "sec_ftc-5-4-2-7",
              "sec_ftc-5-4-2-9",
              "sec_ftc-5-5",
              "sec_ftc-5-6",
              "sec_ftc-5-6-1-1",
              "sec_ftc-5-6-1-1-4",
              "sec_ftc-5-7",
              "sec_ftc-5-8",
              "sec_ftc-5-8-1-1",
              "sec_ftc-5-8-1-1-1",
              "sec_ftc-5-8-1-1-4",
              "sec_ftc-6",
              "sec_ftc-6-1",
              "sec_ftc-6-1-1-1",
              "sec_ftc-6-2",
              "sec_ftc-6-2-1-1",
              "sec_ftc-6-3",
              "sec_ftc-6-3-1-1",
              "secondftc_exercise",
              "secondftc_exercise-1-1",
              "secondftc_exercise-1-1-3",
              "sec_ftc-6-5",
              "sec_ftc-6-5-1-1",
              "sec_ftc-6-5-1-1-5",
              "sec_ftc-6-6",
              "sec_ftc-6-6-1-1",
              "sec_ftc-6-6-1-1-3",
              "sec_ftc-6-6-1-1-3",
              "sec_ftc-6-7",
              "exercise_smoothingout",
              "exercise_smoothingout-1-1",
              "exercise_smoothingout-1-1-5",
              "exercise_smoothingout-1-2",
              "exercise_smoothingout-1-2-1",
              "exercise_smoothingout-1-2-1-1",
              "exercise_smoothingout-1-2-2",
              "exercise_smoothingout-1-2-2-1",
              "exercise_smoothingout-1-2-3",
              "exercise_smoothingout-1-2-3-1",
              "sec_ftc-6-9",
              "sec_ftc-6-9-1-1",
              "sec_ftc-6-10",
              "sec_ftc-6-10-1-1",
              "sec_ftc-6-11",
              "sec_ftc-6-11-1-1",
              "sec_ftc-6-11-1-2",
              "sec_ftc-6-11-1-2-1",
              "sec_ftc-6-11-1-2-1-1",
              "sec_ftc-6-11-1-2-2",
              "sec_ftc-6-11-1-2-2-1",
              "sec_ftc-6-12",
              "sec_ftc-6-12-1-1",
              "sec_ftc-6-12-1-2",
              "sec_ftc-6-12-1-2-1",
              "sec_ftc-6-12-1-2-1-1",
              "sec_ftc-6-12-1-2-2",
              "sec_ftc-6-12-1-2-2-1",
              "sec_ftc-6-13",
              "sec_ftc-6-13-1-1",
              "sec_ftc-6-13-1-2",
              "sec_ftc-6-13-1-2-1",
              "sec_ftc-6-13-1-2-1-1",
              "sec_ftc-6-13-1-2-2",
              "sec_ftc-6-13-1-2-2-1",
              "sec_ftc-6-14",
              "sec_ftc-6-14-1-1",
              "sec_ftc-6-14-1-1-2",
              "ptx-content-footer"
            ],
            "relation": "supplementary_reading",
            "mathematical_consumer_equivalence": "not_inferred",
            "whole_course_completion": false
          },
          {
            "id": "human.lebl.analysis.sec_factslimsseqs",
            "titles": {
              "en": "Facts about limits of sequences",
              "id": "Sifat-sifat limit barisan"
            },
            "course_ids": [
              "C10"
            ],
            "content_language": "en",
            "reader": {
              "url": "https://www.jirka.org/ra/html/sec_factslimsseqs.html",
              "bytes": 114385,
              "sha256": "0a6fb3eccfb86c323555c9ae0cd27c06b4369b79c3a4c6f33253d7888fc02f9f"
            },
            "source": {
              "archive": "https://www.jirka.org/ra/",
              "member": "ch-seq-ser.tex",
              "sha256": "18657062b4a851fc7cd1ced849e7791e893e2e9968288850ac3c0a8a5c5bd1ce",
              "label": "sec:factslimsseqs"
            },
            "author": "Jiří Lebl",
            "licence": "CC-BY-SA-4.0",
            "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
            "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
            "anchors": [
              "ptx-content",
              "sec_factslimsseqs",
              "sec_factslimsseqs-2",
              "sec_factslimsseqs-2-1",
              "sec_factslimsseqs-2-2",
              "sec_factslimsseqs-3",
              "sec_factslimsseqs-3-2",
              "squeeze_lemma",
              "squeeze_lemma-3-1",
              "squeeze_lemma-3-1-4",
              "squeeze_lemma-3-1-7",
              "squeeze_lemma-3-1-9",
              "sec_factslimsseqs-3-4",
              "sec_factslimsseqs-3-4-1",
              "sec_factslimsseqs-3-4-1-14",
              "figsqueeze",
              "sec_factslimsseqs-3-8",
              "sec_factslimsseqs-3-8-1-1",
              "sec_factslimsseqs-3-8-1-1-5",
              "sec_factslimsseqs-3-8-1-1-10",
              "sec_factslimsseqs-3-9",
              "limandineq_lemma",
              "limandineq_lemma-1-1",
              "limandineq_lemma-1-1-3",
              "limandineq_lemma-1-1-4",
              "sec_factslimsseqs-3-11",
              "sec_factslimsseqs-3-11-1",
              "sec_factslimsseqs-3-11-1-13",
              "sec_factslimsseqs-3-11-1-17",
              "sec_factslimsseqs-3-12",
              "limandineq_cor",
              "limandineq_cor-1-1",
              "limandineq_cor-1-2",
              "limandineq_cor-1-2-1",
              "limandineq_cor-1-2-1-1",
              "limandineq_cor-1-2-1-1-4",
              "limandineq_cor-1-2-2",
              "limandineq_cor-1-2-2-1",
              "limandineq_cor-1-2-2-1-3",
              "limandineq_cor-1-2-2-1-4",
              "sec_factslimsseqs-3-14",
              "sec_factslimsseqs-3-14-12",
              "sec_factslimsseqs-4",
              "sec_factslimsseqs-4-2",
              "prop_contalg",
              "prop_contalg-1-1",
              "prop_contalg-1-2",
              "prop_contalg_i",
              "prop_contalg_i-1",
              "prop_contalg_i-1-3",
              "prop_contalg_ii",
              "prop_contalg_ii-1",
              "prop_contalg_ii-1-3",
              "prop_contalg_iii",
              "prop_contalg_iii-1",
              "prop_contalg_iii-1-3",
              "prop_contalg_iv",
              "prop_contalg_iv-1",
              "prop_contalg_iv-1-6",
              "sec_factslimsseqs-4-4",
              "sec_factslimsseqs-4-4-1",
              "sec_factslimsseqs-4-4-1-17",
              "sec_factslimsseqs-4-4-2",
              "sec_factslimsseqs-4-4-2-18",
              "sec_factslimsseqs-4-4-3",
              "sec_factslimsseqs-4-4-4",
              "sec_factslimsseqs-4-4-4-2",
              "sec_factslimsseqs-4-4-5",
              "sec_factslimsseqs-4-4-6",
              "sec_factslimsseqs-4-4-6-7",
              "sec_factslimsseqs-4-4-6-10",
              "sec_factslimsseqs-4-4-6-13",
              "sec_factslimsseqs-4-4-6-14",
              "sec_factslimsseqs-4-5",
              "sec_factslimsseqs-4-5-3",
              "sec_factslimsseqs-4-6",
              "sec_factslimsseqs-4-7",
              "sec_factslimsseqs-4-7-1-1",
              "sec_factslimsseqs-4-7-1-1-4",
              "sec_factslimsseqs-4-8",
              "sec_factslimsseqs-4-9",
              "sec_factslimsseqs-4-9-1",
              "sec_factslimsseqs-4-9-2",
              "sec_factslimsseqs-4-9-2-7",
              "sec_factslimsseqs-4-9-3",
              "sec_factslimsseqs-4-9-3-3",
              "sec_factslimsseqs-4-10",
              "sec_factslimsseqs-4-11",
              "sec_factslimsseqs-4-12",
              "sec_factslimsseqs-4-12-1-1",
              "sec_factslimsseqs-4-12-1-1-3",
              "sec_factslimsseqs-4-13",
              "sec_factslimsseqs-4-13-1",
              "sec_factslimsseqs-4-13-1-1",
              "sec_factslimsseqs-4-14",
              "sec_factslimsseqs-4-14-2",
              "sec_factslimsseqs-4-15",
              "sec_factslimsseqs-4-15-1",
              "sec_factslimsseqs-5",
              "sec_factslimsseqs-5-2",
              "sec_factslimsseqs-5-3",
              "sec_factslimsseqs-5-3-1-1",
              "sec_factslimsseqs-5-3-1-1-3",
              "sec_factslimsseqs-5-3-1-2",
              "sec_factslimsseqs-5-3-1-2-8",
              "sec_factslimsseqs-5-3-1-3",
              "sec_factslimsseqs-5-3-1-3-7",
              "sec_factslimsseqs-5-3-1-4",
              "sec_factslimsseqs-5-3-1-4-1",
              "sec_factslimsseqs-5-3-1-4-5",
              "sec_factslimsseqs-5-4",
              "sec_factslimsseqs-5-4-2",
              "sec_factslimsseqs-5-4-2",
              "sec_factslimsseqs-5-5",
              "sec_factslimsseqs-5-6",
              "sec_factslimsseqs-5-6-1-1",
              "sec_factslimsseqs-5-6-1-2",
              "sec_factslimsseqs-6",
              "sec_factslimsseqs-6-2",
              "convzero_prop",
              "convzero_prop-1-1",
              "convzero_prop-1-1-4",
              "convzero_prop-1-1-5",
              "sec_factslimsseqs-6-4",
              "sec_factslimsseqs-6-4-1",
              "sec_factslimsseqs-6-4-1-8",
              "sec_factslimsseqs-6-5",
              "sec_factslimsseqs-6-6",
              "sec_factslimsseqs-6-6-1-1",
              "sec_factslimsseqs-6-6-1-2",
              "sec_factslimsseqs-6-6-1-2-1",
              "sec_factslimsseqs-6-6-1-2-1-1",
              "sec_factslimsseqs-6-6-1-2-1-1-2",
              "sec_factslimsseqs-6-6-1-2-2",
              "sec_factslimsseqs-6-6-1-2-2-1",
              "sec_factslimsseqs-6-7",
              "sec_factslimsseqs-6-7-1",
              "sec_factslimsseqs-6-7-2",
              "sec_factslimsseqs-6-7-2-7",
              "sec_factslimsseqs-6-8",
              "seq_ratiotest",
              "seq_ratiotest-3-1",
              "seq_ratiotest-3-1-4",
              "seq_ratiotest-3-2",
              "seq_ratiotest-3-2-1",
              "seq_ratiotest-3-2-1-1",
              "seq_ratiotest-3-2-2",
              "seq_ratiotest-3-2-2-1",
              "sec_factslimsseqs-6-10",
              "sec_factslimsseqs-6-11",
              "sec_factslimsseqs-6-11-1",
              "figratseq",
              "sec_factslimsseqs-6-11-5",
              "sec_factslimsseqs-6-11-5-4",
              "sec_factslimsseqs-6-11-5-6",
              "sec_factslimsseqs-6-11-5-9",
              "sec_factslimsseqs-6-11-6",
              "sec_factslimsseqs-6-11-6-7",
              "sec_factslimsseqs-6-11-6-8",
              "sec_factslimsseqs-6-11-6-10",
              "sec_factslimsseqs-6-12",
              "sec_factslimsseqs-6-12-1-1",
              "sec_factslimsseqs-6-12-1-1-1",
              "sec_factslimsseqs-6-12-1-2",
              "sec_factslimsseqs-6-12-1-2-1",
              "example_nto1overn",
              "example_nto1overn-1-1",
              "example_nto1overn-1-1-1",
              "example_nto1overn-1-2",
              "example_nto1overn-1-2-3",
              "example_nto1overn-1-2-6",
              "sec_factslimsseqs-7",
              "sec_factslimsseqs-7-1",
              "sec_factslimsseqs-7-1-1-1",
              "sec_factslimsseqs-7-2",
              "sec_factslimsseqs-7-2-1-1",
              "sec_factslimsseqs-7-3",
              "sec_factslimsseqs-7-3-1-1",
              "sec_factslimsseqs-7-3-1-1-3",
              "sec_factslimsseqs-7-4",
              "sec_factslimsseqs-7-4-1-1",
              "sec_factslimsseqs-7-5",
              "sec_factslimsseqs-7-5-1-1",
              "sec_factslimsseqs-7-6",
              "sec_factslimsseqs-7-6-1-1",
              "sec_factslimsseqs-7-7",
              "sec_factslimsseqs-7-7-1-1",
              "sec_factslimsseqs-7-8",
              "sec_factslimsseqs-7-8-1-1",
              "sec_factslimsseqs-7-8-1-1-1",
              "sec_factslimsseqs-7-9",
              "sec_factslimsseqs-7-9-1-1",
              "sec_factslimsseqs-7-9-1-1-5",
              "sec_factslimsseqs-7-10",
              "sec_factslimsseqs-7-10-1-1",
              "sec_factslimsseqs-7-10-1-1-7",
              "sec_factslimsseqs-7-11",
              "sec_factslimsseqs-7-11-1-1",
              "sec_factslimsseqs-7-11-1-1-3",
              "sec_factslimsseqs-7-12",
              "sec_factslimsseqs-7-12-1-1",
              "sec_factslimsseqs-7-12-1-2",
              "sec_factslimsseqs-7-12-1-2-1",
              "sec_factslimsseqs-7-12-1-2-1-1",
              "sec_factslimsseqs-7-12-1-2-2",
              "sec_factslimsseqs-7-12-1-2-2-1",
              "sec_factslimsseqs-7-12-1-2-3",
              "sec_factslimsseqs-7-12-1-2-3-1",
              "exercise_strongerratiotest1",
              "exercise_strongerratiotest1-1-1",
              "exercise_strongerratiotest1-1-2",
              "exercise_strongerratiotest1-1-2-1",
              "exercise_strongerratiotest1-1-2-1-1",
              "exercise_strongerratiotest1-1-2-1-1-3",
              "exercise_strongerratiotest1-1-2-2",
              "exercise_strongerratiotest1-1-2-2-1",
              "exercise_strongerratiotest1-1-2-2-1-3",
              "exercise_convergentinitialvalues",
              "exercise_convergentinitialvalues-1-1",
              "sec_factslimsseqs-7-15",
              "sec_factslimsseqs-7-15-1-1",
              "sec_factslimsseqs-7-16",
              "sec_factslimsseqs-7-16-1-1",
              "ptx-content-footer"
            ],
            "relation": "supplementary_reading",
            "mathematical_consumer_equivalence": "not_inferred",
            "whole_course_completion": false
          }
        ]
      },
      {
        "id": "C20",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Analisis Real II",
          "en": "Real Analysis II"
        },
        "prerequisites": [
          "C10",
          "B50"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C20",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C20"
        },
        "language_access": {
          "en": {
            "course_id": "C20",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C20",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://www.jirka.org/ra/html/pd_chapter.html",
                  "label": "Basic Analysis II",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://zenodo.org/records/22182427/files/Analisis_Dasar_II_Bahasa_Indonesia_v6.3.pdf?download=1",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/C20-pengajar.html",
                "label": "Susun rencana kegiatan pengajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1967595,
                "sha256": "427e8d35b4b8397ef4cb78818b6624bcc1d7ca413de9c70adf27122e98a79c77",
                "source_body_bytes": 1965408,
                "source_body_sha256": "3c812af53b83f6e93dca9a95ab92f535bf596bae72ff442cb7f06796b2b9a222",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/C20.html",
                "label": "Buku, latihan, dan dukungan sumber",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1813757,
                "sha256": "a89c7dbf57da35c5f704957d9ac60f7a17a5ea108226252e3400564ff96a7344",
                "source_body_bytes": 1811392,
                "source_body_sha256": "eb0b85a85c141339545da580eadabd8f2427a388f8c8f9dd93c7d955a039fdf6",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/istilah.html",
                "label": "Istilah dan alternatif keluarga Lebl",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 322515,
                "sha256": "417690481aaebc6b78c229912bd7f3e9f8a477b65a02a389020dd16254eb5920",
                "source_body_bytes": 316360,
                "source_body_sha256": "f3cd7363b2af9c8e47e6d50415b24030573d1f5af593e157d6b19f7c36f51c4b",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22182427",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/lebl-mathematics-family-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C20",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C20",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://zenodo.org/records/22182427/files/Analisis_Dasar_II_Bahasa_Indonesia_v6.3.pdf?download=1",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://www.jirka.org/ra/html/pd_chapter.html",
                  "label": "Basic Analysis II",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/C20-pengajar.html",
                "label": "Susun rencana kegiatan pengajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1967595,
                "sha256": "427e8d35b4b8397ef4cb78818b6624bcc1d7ca413de9c70adf27122e98a79c77",
                "source_body_bytes": 1965408,
                "source_body_sha256": "3c812af53b83f6e93dca9a95ab92f535bf596bae72ff442cb7f06796b2b9a222",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/C20.html",
                "label": "Buku, latihan, dan dukungan sumber",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1813757,
                "sha256": "a89c7dbf57da35c5f704957d9ac60f7a17a5ea108226252e3400564ff96a7344",
                "source_body_bytes": 1811392,
                "source_body_sha256": "eb0b85a85c141339545da580eadabd8f2427a388f8c8f9dd93c7d955a039fdf6",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/istilah.html",
                "label": "Istilah dan alternatif keluarga Lebl",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 322515,
                "sha256": "417690481aaebc6b78c229912bd7f3e9f8a477b65a02a389020dd16254eb5920",
                "source_body_bytes": 316360,
                "source_body_sha256": "f3cd7363b2af9c8e47e6d50415b24030573d1f5af593e157d6b19f7c36f51c4b",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22182427",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/lebl-mathematics-family-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C20",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/lebl-mathematics-family-id",
        "current_reading_resources": [],
        "current_human_reading_resources": [
          {
            "id": "human.lebl.analysis.sec_liminter",
            "titles": {
              "en": "Interchange of limits",
              "id": "Pertukaran limit"
            },
            "course_ids": [
              "C20"
            ],
            "content_language": "en",
            "reader": {
              "url": "https://www.jirka.org/ra/html/sec_liminter.html",
              "bytes": 112802,
              "sha256": "3ff1f89ec5e1f074da0b67b30a853fa03b09e445908873b84e3a068f1986162d"
            },
            "source": {
              "archive": "https://www.jirka.org/ra/",
              "member": "ch-seq-funcs.tex",
              "sha256": "be79007275ea65ab962d2de9e34a20cdebe5afd296068fb5a52a309f4609cbae",
              "label": "sec:liminter"
            },
            "author": "Jiří Lebl",
            "licence": "CC-BY-SA-4.0",
            "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
            "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
            "anchors": [
              "ptx-content",
              "sec_liminter",
              "sec_liminter-2",
              "sec_liminter-2-1",
              "sec_liminter-2-2",
              "sec_liminter-2-2-1",
              "sec_liminter-2-3",
              "sec_liminter-3",
              "sec_liminter-3-2",
              "sec_liminter-3-2-5",
              "sec_liminter-3-3",
              "sec_liminter-3-3-1-1",
              "sec_liminter-3-3-1-1-2",
              "contconvcntr_fig",
              "sec_liminter-3-3-1-5",
              "sec_liminter-3-3-1-5-7",
              "sec_liminter-3-3-1-5-9",
              "sec_liminter-3-3-1-5-12",
              "sec_liminter-3-4",
              "sec_liminter-3-5",
              "sec_liminter-3-5-1-1",
              "sec_liminter-3-6",
              "sec_liminter-3-6-1",
              "sec_liminter-3-6-2",
              "sec_liminter-3-6-2-5",
              "sec_liminter-3-6-2-11",
              "sec_liminter-3-6-2-13",
              "sec_liminter-4",
              "sec_liminter-4-2",
              "sec_liminter-4-3",
              "sec_liminter-4-3-1-1",
              "sec_liminter-4-3-1-1-2",
              "intconvcntr_fig",
              "sec_liminter-4-3-1-5",
              "sec_liminter-4-3-1-5-3",
              "sec_liminter-4-3-1-5-9",
              "sec_liminter-4-3-1-5-13",
              "sec_liminter-4-4",
              "sec_liminter-4-4-1",
              "sec_liminter-4-4-1",
              "integralinterchange_thm",
              "integralinterchange_thm-1-1",
              "integralinterchange_thm-1-1-5",
              "sec_liminter-4-6",
              "sec_liminter-4-6-1",
              "sec_liminter-4-6-1-13",
              "sec_liminter-4-6-2",
              "sec_liminter-4-6-2-5",
              "sec_liminter-4-7",
              "sec_liminter-4-7-1-1",
              "sec_liminter-4-7-1-1-1",
              "sec_liminter-4-7-1-1-8",
              "sec_liminter-4-8",
              "sec_liminter-4-8-1-1",
              "sec_liminter-4-8-1-1-2",
              "sec_liminter-4-8-1-1-10",
              "sec_liminter-4-9",
              "sec_liminter-4-9-1-1",
              "sec_liminter-4-9-1-1-2",
              "sec_liminter-4-9-1-1-7",
              "sec_liminter-5",
              "sec_liminter-5-2",
              "sec_liminter-5-3",
              "sec_liminter-5-3-1-1",
              "fig_conv1nsinxn",
              "exercise_badconvergenceder",
              "exercise_badconvergenceder-1-1",
              "exercise_badconvergenceder-1-1-7",
              "fig_convder1over1pnxsq",
              "sec_liminter-5-5",
              "thm_dersconverge",
              "thm_dersconverge-1-1",
              "sec_liminter-5-7",
              "sec_liminter-5-7-1",
              "sec_liminter-5-7-1-4",
              "sec_liminter-5-7-1-13",
              "sec_liminter-5-7-2",
              "sec_liminter-5-7-2-10",
              "sec_liminter-5-8",
              "sec_liminter-6",
              "sec_liminter-6-2",
              "sec_liminter-6-3",
              "sec_liminter-6-3-1-1",
              "sec_liminter-6-3-1-2",
              "sec_liminter-6-4",
              "sec_liminter-6-4-1",
              "sec_liminter-6-4-1-12",
              "sec_liminter-6-4-1-15",
              "sec_liminter-6-4-2",
              "sec_liminter-6-5",
              "sec_liminter-6-6",
              "sec_liminter-6-7",
              "sec_liminter-6-7-1-1",
              "sec_liminter-6-7-1-1-8",
              "sec_liminter-6-8",
              "sec_liminter-6-8-1",
              "sec_liminter-6-8-1-8",
              "cor_differentiatepowerser",
              "cor_differentiatepowerser-1-1",
              "cor_differentiatepowerser-1-1-9",
              "sec_liminter-6-10",
              "sec_liminter-6-10-1",
              "sec_liminter-6-10-1-3",
              "sec_liminter-6-10-2",
              "sec_liminter-6-10-2-7",
              "sec_liminter-6-10-3",
              "example_exponentialbypowerseries",
              "example_exponentialbypowerseries-1-1",
              "example_exponentialbypowerseries-1-1-1",
              "sec_liminter-6-12",
              "sec_liminter-6-12-1-1",
              "sec_liminter-6-12-1-1-1",
              "sec_liminter-6-12-1-2",
              "sec_liminter-7",
              "sec_liminter-7-1",
              "sec_liminter-7-1-1-1",
              "sec_liminter-7-2",
              "sec_liminter-7-2-1-1",
              "sec_liminter-7-3",
              "sec_liminter-7-3-1-1",
              "sec_liminter-7-4",
              "sec_liminter-7-4-1-1",
              "sec_liminter-7-5",
              "sec_liminter-7-5-1-1",
              "sec_liminter-7-6",
              "sec_liminter-7-7",
              "sec_liminter-7-7-1-1",
              "c1uniflim_exercise",
              "c1uniflim_exercise-1-1",
              "c1uniflim_exercise-1-1-2",
              "c1uniflim_exercise-1-1-7",
              "sec_liminter-7-9",
              "sec_liminter-7-9-2",
              "sec_liminter-7-10",
              "sec_liminter-7-10-1-1",
              "sec_liminter-7-10-1-1-4",
              "sec_liminter-7-11",
              "sec_liminter-7-11-1-1",
              "sec_liminter-7-11-1-1-5",
              "exercise_dinisthm",
              "exercise_dinisthm-1-1",
              "exercise_dinisthm-1-1-6",
              "sec_liminter-7-13",
              "sec_liminter-7-13-1-1",
              "sec_liminter-7-14",
              "sec_liminter-7-14-1-1",
              "sec_liminter-7-14-1-2",
              "sec_liminter-7-14-1-2-1",
              "sec_liminter-7-14-1-2-1-1",
              "sec_liminter-7-14-1-2-2",
              "sec_liminter-7-14-1-2-2-1",
              "sec_liminter-7-15",
              "sec_liminter-7-15-7",
              "sec_liminter-7-16",
              "sec_liminter-7-16-1-1",
              "sec_liminter-7-17",
              "sec_liminter-7-17-1-1",
              "sec_liminter-7-17-1-2",
              "sec_liminter-7-17-1-2-1",
              "sec_liminter-7-17-1-2-1-1",
              "sec_liminter-7-17-1-2-2",
              "sec_liminter-7-17-1-2-2-1",
              "sec_liminter-7-18",
              "sec_liminter-7-18-1-1",
              "sec_liminter-7-18-1-2",
              "sec_liminter-7-18-1-2-1",
              "sec_liminter-7-18-1-2-1-1",
              "sec_liminter-7-18-1-2-2",
              "sec_liminter-7-18-1-2-2-1",
              "sec_liminter-7-19",
              "sec_liminter-7-19-1-1",
              "sec_liminter-7-20",
              "sec_liminter-7-20-1-1",
              "sec_liminter-7-21",
              "sec_liminter-7-21-1-1",
              "sec_liminter-7-21-1-2",
              "sec_liminter-7-21-1-2-1",
              "sec_liminter-7-21-1-2-1-1",
              "sec_liminter-7-21-1-2-2",
              "sec_liminter-7-21-1-2-2-1",
              "sec_liminter-7-22",
              "sec_liminter-7-22-1-1",
              "sec_liminter-7-23",
              "sec_liminter-7-23-1-1",
              "sec_liminter-7-23-1-2",
              "sec_liminter-7-23-1-2-1",
              "sec_liminter-7-23-1-2-1-1",
              "sec_liminter-7-23-1-2-2",
              "sec_liminter-7-23-1-2-2-1",
              "sec_liminter-7-24",
              "sec_liminter-7-24-1-1",
              "sec_liminter-7-24-1-2",
              "sec_liminter-7-24-1-2-1",
              "sec_liminter-7-24-1-2-1-1",
              "sec_liminter-7-24-1-2-2",
              "sec_liminter-7-24-1-2-2-1",
              "sec_liminter-7-24-1-2-3",
              "sec_liminter-7-24-1-2-3-1",
              "sec_liminter-7-24-1-2-4",
              "sec_liminter-7-24-1-2-4-1",
              "sec_liminter-7-24-1-2-4-1-2",
              "sec_liminter-7-24-1-2-5",
              "sec_liminter-7-24-1-2-5-1",
              "sec_liminter-7-25",
              "sec_liminter-7-25-1-1",
              "ptx-content-footer"
            ],
            "relation": "supplementary_reading",
            "mathematical_consumer_equivalence": "not_inferred",
            "whole_course_completion": false
          },
          {
            "id": "human.lebl.analysis.sec_metric",
            "titles": {
              "en": "Metric spaces",
              "id": "Ruang metrik"
            },
            "course_ids": [
              "C20",
              "C90"
            ],
            "content_language": "en",
            "reader": {
              "url": "https://www.jirka.org/ra/html/sec_metric.html",
              "bytes": 81206,
              "sha256": "316fc23f24ef9bfdf955d2f156ca16be19ec878ed96439e9d4e95ab7b68a52fe"
            },
            "source": {
              "archive": "https://www.jirka.org/ra/",
              "member": "ch-metric.tex",
              "sha256": "7856d4f48bbab222662c0ceace9d3e7f97be2dfffc7bac38433017d6800f268a",
              "label": "sec:metric"
            },
            "author": "Jiří Lebl",
            "licence": "CC-BY-SA-4.0",
            "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
            "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
            "anchors": [
              "ptx-content",
              "sec_metric",
              "sec_metric-2",
              "sec_metric-3",
              "sec_metric-4",
              "sec_metric-5",
              "sec_metric-6",
              "sec_metric-6-1-1",
              "sec_metric-6-1-2",
              "metric_pos",
              "metric_pos-1",
              "metric_zero",
              "metric_zero-1",
              "metric_com",
              "metric_com-1",
              "metric_triang",
              "metric_triang-1",
              "sec_metric-6-1-3",
              "sec_metric-7",
              "fig_mstriang",
              "sec_metric-11",
              "sec_metric-12",
              "sec_metric-13",
              "sec_metric-13-1-1",
              "sec_metric-13-1-1-2",
              "sec_metric-13-1-1-6",
              "sec_metric-14",
              "sec_metric-14-1-1",
              "sec_metric-14-1-1-2",
              "sec_metric-14-1-1-10",
              "fig_tovertp1",
              "sec_metric-15",
              "sec_metric-16",
              "sec_metric-16-2-1",
              "sec_metric-16-2-1-1",
              "sec_metric-16-2-1-1",
              "sec_metric-16-2-1-4",
              "sec_metric-17",
              "sec_metric-17-1",
              "sec_metric-17-1-1",
              "sec_metric-17-1-2",
              "sec_metric-18",
              "sec_metric-18-1-1",
              "sec_metric-18-1-1-3",
              "sec_metric-18-1-1-6",
              "sec_metric-19",
              "sec_metric-19-1-1",
              "sec_metric-19-1-1-18",
              "sec_metric-20",
              "sec_metric-20-1-1",
              "sec_metric-20-1-1-3",
              "fig_msdiscmetric",
              "sec_metric-20-1-5",
              "example_msC01",
              "example_msC01-1-1",
              "example_msC01-1-1-4",
              "example_msC01-1-1-20",
              "example_msC01-1-2",
              "sec_metric-22",
              "sec_metric-22-1-1",
              "fig_spheremetric",
              "sec_metric-22-1-5",
              "sec_metric-23",
              "sec_metric-24",
              "sec_metric-24-1-1",
              "sec_metric-25",
              "sec_metric-25-1-1",
              "sec_metric-26",
              "sec_metric-27",
              "sec_metric-28",
              "sec_metric-28-1-1",
              "sec_metric-28-1-1-7",
              "sec_metric-29",
              "sec_metric-30",
              "sec_metric-31",
              "sec_metric-32",
              "sec_metric-32-1",
              "sec_metric-32-1-1",
              "sec_metric-32-2",
              "sec_metric-32-2-1",
              "sec_metric-33",
              "sec_metric-34",
              "sec_metric-34-1",
              "sec_metric-34-1-1-1",
              "sec_metric-34-2",
              "sec_metric-34-2-1-1",
              "sec_metric-34-3",
              "sec_metric-34-3-1-1",
              "sec_metric-34-4",
              "sec_metric-34-4-1-1",
              "sec_metric-34-5",
              "sec_metric-34-5-1-1",
              "exercise_mscross",
              "exercise_mscross-1-1",
              "exercise_mscross-1-2",
              "exercise_mscross-1-2-1",
              "exercise_mscross-1-2-1-1",
              "exercise_mscross-1-2-2",
              "exercise_mscross-1-2-2-1",
              "sec_metric-34-7",
              "sec_metric-34-7-1-1",
              "sec_metric-34-7-1-1-4",
              "exercise_mshausdorffpseudo",
              "exercise_mshausdorffpseudo-1-1",
              "exercise_mshausdorffpseudo-1-1-4",
              "exercise_mshausdorffpseudo-1-1-6",
              "exercise_mshausdorffpseudo-1-2",
              "exercise_mshausdorffpseudo-1-2-1",
              "exercise_mshausdorffpseudo-1-2-1-1",
              "exercise_mshausdorffpseudo-1-2-2",
              "exercise_mshausdorffpseudo-1-2-2-1",
              "exercise_mshausdorffpseudo-1-2-3",
              "exercise_mshausdorffpseudo-1-2-3-1",
              "sec_metric-34-9",
              "sec_metric-34-9-1-1",
              "sec_metric-34-9-1-2",
              "sec_metric-34-9-1-2-1",
              "sec_metric-34-9-1-2-1-1",
              "sec_metric-34-9-1-2-2",
              "sec_metric-34-9-1-2-2-1",
              "sec_metric-34-10",
              "sec_metric-34-10-1-1",
              "sec_metric-34-10-1-2",
              "sec_metric-34-10-1-2-1",
              "sec_metric-34-10-1-2-1-1",
              "sec_metric-34-10-1-2-2",
              "sec_metric-34-10-1-2-2-1",
              "sec_metric-34-10-1-2-3",
              "sec_metric-34-10-1-2-3-1",
              "sec_metric-34-11",
              "sec_metric-34-11-1-1",
              "sec_metric-34-11-1-2",
              "sec_metric-34-11-1-2-1",
              "sec_metric-34-11-1-2-1-1",
              "sec_metric-34-11-1-2-2",
              "sec_metric-34-11-1-2-2-1",
              "sec_metric-34-11-1-2-3",
              "sec_metric-34-11-1-2-3-1",
              "exercise_C1ab",
              "exercise_C1ab-1-1",
              "exercise_C1ab-1-1-3",
              "sec_metric-34-13",
              "sec_metric-34-13-1-1",
              "sec_metric-34-13-1-2",
              "sec_metric-34-13-1-2-1",
              "sec_metric-34-13-1-2-1-1",
              "sec_metric-34-13-1-2-1-1-6",
              "sec_metric-34-13-1-2-2",
              "sec_metric-34-13-1-2-2-1",
              "ptx-content-footer"
            ],
            "relation": "supplementary_reading",
            "mathematical_consumer_equivalence": "not_inferred",
            "whole_course_completion": false
          }
        ]
      },
      {
        "id": "C30",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Aljabar Abstrak I",
          "en": "Abstract Algebra I"
        },
        "prerequisites": [
          "B10",
          "B40"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C30",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C30"
        },
        "language_access": {
          "en": {
            "course_id": "C30",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C30",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://judsonbooks.org/aata-files/aata-html/aata.html",
                  "label": "Abstract Algebra: Theory and Applications",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22062449/files/ALJABAR_ABSTRAK_TEORI_DAN_PENERAPAN_ID_2026.08.22.2.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/judson/C30.html",
                "label": "Peta bab & edisi arsip",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 9932,
                "sha256": "334cca3d0ce47acf21babd9b5d645a118e13d768e6f9c45bd9a69fce2cdad80e",
                "source_body_bytes": 7663,
                "source_body_sha256": "96681c535f2652f2a14fd0674bc3f2c603682cc18ca586bf0e34bd75a4a64824",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/judson/C30.teacher.html",
                "label": "C30 · Perencana tugas aljabar abstrak",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1259926,
                "sha256": "abc4f58ad86faa5bc480329d0fc6481ddb2f15bf74ed385fc92d4ec6a74e05a1",
                "source_body_bytes": 1257499,
                "source_body_sha256": "01c5bbf9e582a3d55c61456b17c656a24456655fc90c0ed11e561e6571db5cf5",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/judson/C30.teacher.en.html",
                "label": "C30 · English abstract algebra assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1259924,
                "sha256": "0b913605b388f1a34f8ea5d93662bc7569d21be6dc87eb52da87dc91fef0101c",
                "source_body_bytes": 1257501,
                "source_body_sha256": "63130d9ae882c5825f6bca9a7c1f208c6ea82924730b0e6740e2d4b58e87cf47",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22062449",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/abstract-algebra-theory-and-applications-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C30",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C30",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22062449/files/ALJABAR_ABSTRAK_TEORI_DAN_PENERAPAN_ID_2026.08.22.2.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://judsonbooks.org/aata-files/aata-html/aata.html",
                  "label": "Abstract Algebra: Theory and Applications",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/judson/C30.html",
                "label": "Peta bab & edisi arsip",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 9932,
                "sha256": "334cca3d0ce47acf21babd9b5d645a118e13d768e6f9c45bd9a69fce2cdad80e",
                "source_body_bytes": 7663,
                "source_body_sha256": "96681c535f2652f2a14fd0674bc3f2c603682cc18ca586bf0e34bd75a4a64824",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/judson/C30.teacher.html",
                "label": "C30 · Perencana tugas aljabar abstrak",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1259926,
                "sha256": "abc4f58ad86faa5bc480329d0fc6481ddb2f15bf74ed385fc92d4ec6a74e05a1",
                "source_body_bytes": 1257499,
                "source_body_sha256": "01c5bbf9e582a3d55c61456b17c656a24456655fc90c0ed11e561e6571db5cf5",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/judson/C30.teacher.en.html",
                "label": "C30 · English abstract algebra assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1259924,
                "sha256": "0b913605b388f1a34f8ea5d93662bc7569d21be6dc87eb52da87dc91fef0101c",
                "source_body_bytes": 1257501,
                "source_body_sha256": "63130d9ae882c5825f6bca9a7c1f208c6ea82924730b0e6740e2d4b58e87cf47",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22062449",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/abstract-algebra-theory-and-applications-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C30",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/abstract-algebra-theory-and-applications-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "C40",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Aljabar Abstrak II",
          "en": "Abstract Algebra II"
        },
        "prerequisites": [
          "C30"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C40",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C40"
        },
        "language_access": {
          "en": {
            "course_id": "C40",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C40",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://judsonbooks.org/aata-files/aata-html/aata.html",
                  "label": "Abstract Algebra: Theory and Applications",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22062449/files/ALJABAR_ABSTRAK_TEORI_DAN_PENERAPAN_ID_2026.08.22.2.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/judson/C40.html",
                "label": "Peta bab & edisi arsip",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 7678,
                "sha256": "3a747f245173dde79cc382d1dae1156e2d7ff2c09be985d3e0a6c2c9b971cd35",
                "source_body_bytes": 5409,
                "source_body_sha256": "dba37252afe9e2746da72286bdc7360e4bedeb48318982f626e7045d8f7ec12f",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/judson/C40.teacher.html",
                "label": "C40 · Perencana tugas aljabar abstrak",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 626937,
                "sha256": "53c82a4ab848b1beeeb59fc1f6ee10ebec4278387a9fd76e06de216ea914adaa",
                "source_body_bytes": 624510,
                "source_body_sha256": "ef4244216cf0e6ea6143a8760de93b653621404a54f4c39bef25d23e3bdac927",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/judson/C40.teacher.en.html",
                "label": "C40 · English abstract algebra assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 626888,
                "sha256": "ebf7c598603ecc9384789ae155c59a34abe9f9bf6c8bc4b0eac89c2e687a28f3",
                "source_body_bytes": 624465,
                "source_body_sha256": "25b50e6b2d7e7f750b7e85a9988711a22c1cc2230784ebefbd214e2394b266ae",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22062449",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/abstract-algebra-theory-and-applications-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C40",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C40",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/abstract-algebra-theory-and-applications-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22062449/files/ALJABAR_ABSTRAK_TEORI_DAN_PENERAPAN_ID_2026.08.22.2.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://judsonbooks.org/aata-files/aata-html/aata.html",
                  "label": "Abstract Algebra: Theory and Applications",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/judson/C40.html",
                "label": "Peta bab & edisi arsip",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 7678,
                "sha256": "3a747f245173dde79cc382d1dae1156e2d7ff2c09be985d3e0a6c2c9b971cd35",
                "source_body_bytes": 5409,
                "source_body_sha256": "dba37252afe9e2746da72286bdc7360e4bedeb48318982f626e7045d8f7ec12f",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/judson/C40.teacher.html",
                "label": "C40 · Perencana tugas aljabar abstrak",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 626937,
                "sha256": "53c82a4ab848b1beeeb59fc1f6ee10ebec4278387a9fd76e06de216ea914adaa",
                "source_body_bytes": 624510,
                "source_body_sha256": "ef4244216cf0e6ea6143a8760de93b653621404a54f4c39bef25d23e3bdac927",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/judson/C40.teacher.en.html",
                "label": "C40 · English abstract algebra assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 626888,
                "sha256": "ebf7c598603ecc9384789ae155c59a34abe9f9bf6c8bc4b0eac89c2e687a28f3",
                "source_body_bytes": 624465,
                "source_body_sha256": "25b50e6b2d7e7f750b7e85a9988711a22c1cc2230784ebefbd214e2394b266ae",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22062449",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/abstract-algebra-theory-and-applications-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C40",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/abstract-algebra-theory-and-applications-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "C50",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Analisis Kompleks",
          "en": "Complex Analysis"
        },
        "prerequisites": [
          "C20"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C50",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C50"
        },
        "language_access": {
          "en": {
            "course_id": "C50",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C50",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://www.jirka.org/ca/ca.pdf",
                  "label": "Guide to Cultivating Complex Analysis",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://zenodo.org/records/22182427/files/Panduan_Mengolah_Analisis_Kompleks_Bahasa_Indonesia_v1.9.pdf?download=1",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/C50-pengajar.html",
                "label": "Susun rencana kegiatan pengajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1439480,
                "sha256": "05a42c0d212e26586525d40e85dc61c2fb98d8102f6cc5db14dedd14719c9122",
                "source_body_bytes": 1437281,
                "source_body_sha256": "9e9c3d8c28c65b5e3d0c407c6f23571ed9eeb5aafcb9f45bce00d77d4a5940e4",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/C50.html",
                "label": "Buku, latihan, dan dukungan sumber",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1329932,
                "sha256": "d2a57f98dc35ce7c1e4913c3e1e79dcfdc8a86c27d70432914b6c32b3677dc7c",
                "source_body_bytes": 1327555,
                "source_body_sha256": "a1d4c93d0cdeeab7d04d1cdc91db0b967d63631e04c12964b35d168860b831ec",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/istilah.html",
                "label": "Istilah dan alternatif keluarga Lebl",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 322515,
                "sha256": "417690481aaebc6b78c229912bd7f3e9f8a477b65a02a389020dd16254eb5920",
                "source_body_bytes": 316360,
                "source_body_sha256": "f3cd7363b2af9c8e47e6d50415b24030573d1f5af593e157d6b19f7c36f51c4b",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22182427",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/lebl-mathematics-family-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C50",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C50",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://zenodo.org/records/22182427/files/Panduan_Mengolah_Analisis_Kompleks_Bahasa_Indonesia_v1.9.pdf?download=1",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://www.jirka.org/ca/ca.pdf",
                  "label": "Guide to Cultivating Complex Analysis",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/C50-pengajar.html",
                "label": "Susun rencana kegiatan pengajar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1439480,
                "sha256": "05a42c0d212e26586525d40e85dc61c2fb98d8102f6cc5db14dedd14719c9122",
                "source_body_bytes": 1437281,
                "source_body_sha256": "9e9c3d8c28c65b5e3d0c407c6f23571ed9eeb5aafcb9f45bce00d77d4a5940e4",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/C50.html",
                "label": "Buku, latihan, dan dukungan sumber",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1329932,
                "sha256": "d2a57f98dc35ce7c1e4913c3e1e79dcfdc8a86c27d70432914b6c32b3677dc7c",
                "source_body_bytes": 1327555,
                "source_body_sha256": "a1d4c93d0cdeeab7d04d1cdc91db0b967d63631e04c12964b35d168860b831ec",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/lebl/istilah.html",
                "label": "Istilah dan alternatif keluarga Lebl",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 322515,
                "sha256": "417690481aaebc6b78c229912bd7f3e9f8a477b65a02a389020dd16254eb5920",
                "source_body_bytes": 316360,
                "source_body_sha256": "f3cd7363b2af9c8e47e6d50415b24030573d1f5af593e157d6b19f7c36f51c4b",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22182427",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/lebl-mathematics-family-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C50",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/lebl-mathematics-family-id",
        "current_reading_resources": [],
        "current_human_reading_resources": [
          {
            "id": "human.lebl.analysis.sec_complexexp",
            "titles": {
              "en": "Complex exponential and trigonometric functions",
              "id": "Fungsi eksponensial kompleks dan trigonometri"
            },
            "course_ids": [
              "C50"
            ],
            "content_language": "en",
            "reader": {
              "url": "https://www.jirka.org/ra/html/sec_complexexp.html",
              "bytes": 66816,
              "sha256": "de1190803425074d3671d59c250feb14d69da1db01d0a51ad24be168e5a10e10"
            },
            "source": {
              "archive": "https://www.jirka.org/ra/",
              "member": "ch-approximate.tex",
              "sha256": "13877cfa45bee3abf1bfc285a7651e6ffaabc2c4a65ca32708d5546ece93f240",
              "label": "sec:complexexp"
            },
            "author": "Jiří Lebl",
            "licence": "CC-BY-SA-4.0",
            "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
            "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
            "anchors": [
              "ptx-content",
              "sec_complexexp",
              "sec_complexexp-2",
              "sec_complexexp-2-1",
              "sec_complexexp-3",
              "sec_complexexp-3-2",
              "sec_complexexp-3-2-1",
              "sec_complexexp-3-2-10",
              "sec_complexexp-3-3",
              "sec_complexexp-3-3-2",
              "fig_complexexpgraphs",
              "sec_complexexp-3-7",
              "sec_complexexp-3-7-2-1",
              "sec_complexexp-3-7-2-1-2",
              "sec_complexexp-3-8",
              "sec_complexexp-3-8-1",
              "sec_complexexp-3-9",
              "sec_complexexp-3-9-5",
              "sec_complexexp-3-9-7",
              "sec_complexexp-4",
              "sec_complexexp-4-2",
              "sec_complexexp-4-2-3",
              "sec_complexexp-4-2-5",
              "sec_complexexp-4-3",
              "sec_complexexp-4-4",
              "sec_complexexp-4-4-1-1",
              "sec_complexexp-4-4-1-2",
              "sec_complexexp-4-4-1-2-1",
              "sec_complexexp-4-4-1-2-1-1",
              "sec_complexexp-4-4-1-2-1-1-3",
              "sec_complexexp-4-4-1-2-2",
              "sec_complexexp-4-4-1-2-2-1",
              "sec_complexexp-4-4-1-2-3",
              "sec_complexexp-4-4-1-2-3-1",
              "sec_complexexp-4-4-1-2-3-1-2",
              "sec_complexexp-4-4-1-2-4",
              "sec_complexexp-4-4-1-2-4-1",
              "sec_complexexp-4-4-1-2-4-1-2",
              "sec_complexexp-4-4-1-2-5",
              "sec_complexexp-4-4-1-2-5-1",
              "sec_complexexp-4-4-1-2-5-1-2",
              "sec_complexexp-4-4-1-2-6",
              "sec_complexexp-4-4-1-2-6-1",
              "sec_complexexp-4-4-1-2-6-1-2",
              "sec_complexexp-4-4-1-2-7",
              "sec_complexexp-4-4-1-2-7-1",
              "sec_complexexp-4-4-1-2-7-1-2",
              "sec_complexexp-4-4-1-2-8",
              "sec_complexexp-4-4-1-2-8-1",
              "sec_complexexp-4-4-1-2-8-1-2",
              "sec_complexexp-4-4-1-2-9",
              "sec_complexexp-4-4-1-2-9-1",
              "sec_complexexp-4-4-1-2-9-1-2",
              "sec_complexexp-4-4-1-2-10",
              "sec_complexexp-4-4-1-2-10-1",
              "sec_complexexp-4-4-1-2-10-1-3",
              "sec_complexexp-4-4-1-2-11",
              "sec_complexexp-4-4-1-2-11-1",
              "sec_complexexp-4-4-1-2-11-1-2",
              "sec_complexexp-4-4-1-2-12",
              "sec_complexexp-4-4-1-2-12-1",
              "sec_complexexp-4-4-1-2-12-1-4",
              "sec_complexexp-4-4-1-2-13",
              "sec_complexexp-4-4-1-2-13-1",
              "sec_complexexp-4-5",
              "sec_complexexp-4-6",
              "sec_complexexp-4-6-1",
              "sec_complexexp-4-6-1-4",
              "sec_complexexp-4-6-2",
              "sec_complexexp-4-6-2-2",
              "sec_complexexp-4-6-2-7",
              "sec_complexexp-4-6-3",
              "sec_complexexp-4-6-3-4",
              "sec_complexexp-4-6-4",
              "sec_complexexp-4-6-4-17",
              "sec_complexexp-4-6-4-20",
              "sec_complexexp-4-6-5",
              "sec_complexexp-4-6-5-6",
              "sec_complexexp-4-6-5-7",
              "sec_complexexp-4-6-5-9",
              "sec_complexexp-4-6-6",
              "sec_complexexp-4-6-6-10",
              "sec_complexexp-4-6-6-12",
              "sec_complexexp-4-6-7",
              "sec_complexexp-5",
              "sec_complexexp-5-2",
              "sec_complexexp-5-2-2",
              "sec_complexexp-5-2-7",
              "sec_complexexp-5-3",
              "sec_complexexp-5-4",
              "sec_complexexp-5-4-5",
              "sec_complexexp-5-4-12",
              "sec_complexexp-6",
              "sec_complexexp-6-1",
              "sec_complexexp-6-1-1-1",
              "sec_complexexp-6-2",
              "sec_complexexp-6-2-1-1",
              "sec_complexexp-6-3",
              "sec_complexexp-6-3-1-1",
              "sec_complexexp-6-4",
              "sec_complexexp-6-4-1-1",
              "sec_complexexp-6-5",
              "sec_complexexp-6-5-1-1",
              "exercise_cossinidentity",
              "exercise_cossinidentity-1-1",
              "sec_complexexp-6-7",
              "sec_complexexp-6-7-1-1",
              "sec_complexexp-6-8",
              "sec_complexexp-6-8-1-1",
              "sec_complexexp-6-9",
              "sec_complexexp-6-9-3",
              "sec_complexexp-6-10",
              "sec_complexexp-6-10-1-1",
              "sec_complexexp-6-11",
              "sec_complexexp-6-11-1-1",
              "sec_complexexp-6-11-1-2",
              "sec_complexexp-6-11-1-2-1",
              "sec_complexexp-6-11-1-2-1-1",
              "sec_complexexp-6-11-1-2-2",
              "sec_complexexp-6-11-1-2-2-1",
              "sec_complexexp-6-11-1-2-3",
              "sec_complexexp-6-11-1-2-3-1",
              "sec_complexexp-6-11-1-2-4",
              "sec_complexexp-6-11-1-2-4-1",
              "sec_complexexp-6-12",
              "sec_complexexp-6-12-1-1",
              "sec_complexexp-6-12-1-2",
              "sec_complexexp-6-12-1-2-1",
              "sec_complexexp-6-12-1-2-1-1",
              "sec_complexexp-6-12-1-2-2",
              "sec_complexexp-6-12-1-2-2-1",
              "sec_complexexp-6-12-1-2-3",
              "sec_complexexp-6-12-1-2-3-1",
              "sec_complexexp-6-12-1-2-3-1-1",
              "sec_complexexp-6-12-1-2-4",
              "sec_complexexp-6-12-1-2-4-1",
              "sec_complexexp-6-12-1-2-4-1-1",
              "ptx-content-footer"
            ],
            "relation": "supplementary_reading",
            "mathematical_consumer_equivalence": "not_inferred",
            "whole_course_completion": false
          }
        ]
      },
      {
        "id": "C60",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Teori Bilangan dan Kriptologi",
          "en": "Number Theory and Cryptology"
        },
        "prerequisites": [
          "B10",
          "C30"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C60",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C60"
        },
        "language_access": {
          "en": {
            "course_id": "C60",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C60",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://www.poritz.net/jonathan/share/yaintt.pdf",
                  "label": "Yet Another Introductory Number Theory Textbook",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/yet-another-introductory-number-theory-textbook-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://github.com/KokunoYumeto/yet-another-introductory-number-theory-textbook-id/releases/tag/v1.0.0",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c60/C60.html",
                "label": "C60 · Teori Bilangan dan Kriptologi",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 17759,
                "sha256": "331c5daabf8b93eb31798245ab6a4f5c0773900c8956d114e822638f22974711",
                "source_body_bytes": 15488,
                "source_body_sha256": "789a8e6c243c779ebe66fa62df20398f2c73789881772ecd6379bd54fb8c481e",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22052196",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/yet-another-introductory-number-theory-textbook-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C60",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C60",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/yet-another-introductory-number-theory-textbook-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://github.com/KokunoYumeto/yet-another-introductory-number-theory-textbook-id/releases/tag/v1.0.0",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://www.poritz.net/jonathan/share/yaintt.pdf",
                  "label": "Yet Another Introductory Number Theory Textbook",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c60/C60.html",
                "label": "C60 · Teori Bilangan dan Kriptologi",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 17759,
                "sha256": "331c5daabf8b93eb31798245ab6a4f5c0773900c8956d114e822638f22974711",
                "source_body_bytes": 15488,
                "source_body_sha256": "789a8e6c243c779ebe66fa62df20398f2c73789881772ecd6379bd54fb8c481e",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22052196",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/yet-another-introductory-number-theory-textbook-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C60",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/yet-another-introductory-number-theory-textbook-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "C70",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Kombinatorika Terapan",
          "en": "Applied Combinatorics"
        },
        "prerequisites": [
          "B10"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C70",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C70"
        },
        "language_access": {
          "en": {
            "course_id": "C70",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C70",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://appliedcombinatorics.org/book/",
                  "label": "Applied Combinatorics",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/applied-combinatorics-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22062005/files/00_KOMBINATORIKA_TERAPAN_ID-ID_COMPLETE_LINKED_READER_2026.08.22.2.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c70/C70.html",
                "label": "C70 · Kombinatorika Terapan",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 50281,
                "sha256": "a7ba5d29a92d31b0cca9bc2e6f7158b9d91743ec44c0394a7d19620bc680636e",
                "source_body_bytes": 48082,
                "source_body_sha256": "1c2f974a96afd3d6153303ebc071d23ab31f39548736a46b4fb48ce392602857",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22062005",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/applied-combinatorics-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C70",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C70",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/applied-combinatorics-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22062005/files/00_KOMBINATORIKA_TERAPAN_ID-ID_COMPLETE_LINKED_READER_2026.08.22.2.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://appliedcombinatorics.org/book/",
                  "label": "Applied Combinatorics",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c70/C70.html",
                "label": "C70 · Kombinatorika Terapan",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 50281,
                "sha256": "a7ba5d29a92d31b0cca9bc2e6f7158b9d91743ec44c0394a7d19620bc680636e",
                "source_body_bytes": 48082,
                "source_body_sha256": "1c2f974a96afd3d6153303ebc071d23ab31f39548736a46b4fb48ce392602857",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22062005",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/applied-combinatorics-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C70",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/applied-combinatorics-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "C80",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Logika Matematis, Teori Himpunan, dan Komputabilitas",
          "en": "Mathematical Logic, Set Theory, and Computability"
        },
        "prerequisites": [
          "B10"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C80",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C80"
        },
        "language_access": {
          "en": {
            "course_id": "C80",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C80",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://builds.openlogicproject.org/open-logic-complete.pdf",
                  "label": "Open Logic complete build",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://github.com/KokunoYumeto/OpenLogic-id/releases/download/id-olp-0722-20260814/08_OPENLOGIC_id_STANDALONE_READER_ALL_722_20260905.pdf",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/openlogic/C80.html",
                "label": "Buka Open Logic lengkap",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 7286,
                "sha256": "c4aab7c404b284818983d63cd9a4281ca1963189b90be36b94e37e2e325564a9",
                "source_body_bytes": 5207,
                "source_body_sha256": "336045c46849ee74c3b47d7f2c96757a500b5167b9f811252b1577d8d1e90aaf",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/openlogic-teacher/C80.teacher.html",
                "label": "C80 · Perencana tugas OpenLogic",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1129882,
                "sha256": "3f6cde4f88d6d70ee3d2c7483fa2a9456ebeb994dc10e2a84a995d97e8ed228a",
                "source_body_bytes": 1127629,
                "source_body_sha256": "14ae332761e4a767f8b1717b24b73f926635f338490afd6f3e17ac3fdecd0b83",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/openlogic-teacher/C80.teacher.en.html",
                "label": "C80 · English OpenLogic assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1132053,
                "sha256": "87459ca9bdedc4a29c12d29f365274fe141a35d401c55909c6acf5b791a9892f",
                "source_body_bytes": 1129798,
                "source_body_sha256": "f237c7be4f3778dab8da79de322b91ccc4dd9a682619ef65794f7594d32d0bc7",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.21932786",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/OpenLogic-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C80",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C80",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://github.com/KokunoYumeto/OpenLogic-id/releases/download/id-olp-0722-20260814/08_OPENLOGIC_id_STANDALONE_READER_ALL_722_20260905.pdf",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://builds.openlogicproject.org/open-logic-complete.pdf",
                  "label": "Open Logic complete build",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/openlogic/C80.html",
                "label": "Buka Open Logic lengkap",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 7286,
                "sha256": "c4aab7c404b284818983d63cd9a4281ca1963189b90be36b94e37e2e325564a9",
                "source_body_bytes": 5207,
                "source_body_sha256": "336045c46849ee74c3b47d7f2c96757a500b5167b9f811252b1577d8d1e90aaf",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/openlogic-teacher/C80.teacher.html",
                "label": "C80 · Perencana tugas OpenLogic",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1129882,
                "sha256": "3f6cde4f88d6d70ee3d2c7483fa2a9456ebeb994dc10e2a84a995d97e8ed228a",
                "source_body_bytes": 1127629,
                "source_body_sha256": "14ae332761e4a767f8b1717b24b73f926635f338490afd6f3e17ac3fdecd0b83",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/openlogic-teacher/C80.teacher.en.html",
                "label": "C80 · English OpenLogic assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1132053,
                "sha256": "87459ca9bdedc4a29c12d29f365274fe141a35d401c55909c6acf5b791a9892f",
                "source_body_bytes": 1129798,
                "source_body_sha256": "f237c7be4f3778dab8da79de322b91ccc4dd9a682619ef65794f7594d32d0bc7",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.21932786",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/OpenLogic-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C80",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/OpenLogic-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "C90",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Topologi Himpunan-Titik",
          "en": "Point-Set Topology"
        },
        "prerequisites": [
          "B10",
          "C10"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C90",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C90"
        },
        "language_access": {
          "en": {
            "course_id": "C90",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C90",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://gvsuoer.github.io/topology/",
                  "label": "Topology: An Inquiry-Based Approach",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/topology-an-inquiry-based-approach-id/reader/complete/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22164668/files/topologi-pendekatan-berbasis-inkuiri-edisi-lengkap-id.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/topology/C90.html",
                "label": "C90",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 36784,
                "sha256": "18b79e5f12a328d82499ca362741c172e302c9a92661d5d676efb149a8bbf198",
                "source_body_bytes": 34091,
                "source_body_sha256": "cd9fdc46b426c34c1b0c43d97ceb20539af879b249503edfb3b32aaddbd1e9ee",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22164668",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/topology-an-inquiry-based-approach-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C90",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C90",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/topology-an-inquiry-based-approach-id/reader/complete/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22164668/files/topologi-pendekatan-berbasis-inkuiri-edisi-lengkap-id.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://gvsuoer.github.io/topology/",
                  "label": "Topology: An Inquiry-Based Approach",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/topology/C90.html",
                "label": "C90",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 36784,
                "sha256": "18b79e5f12a328d82499ca362741c172e302c9a92661d5d676efb149a8bbf198",
                "source_body_bytes": 34091,
                "source_body_sha256": "cd9fdc46b426c34c1b0c43d97ceb20539af879b249503edfb3b32aaddbd1e9ee",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22164668",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/topology-an-inquiry-based-approach-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C90",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/topology-an-inquiry-based-approach-id",
        "current_reading_resources": [],
        "current_human_reading_resources": [
          {
            "id": "human.lebl.analysis.sec_metric",
            "titles": {
              "en": "Metric spaces",
              "id": "Ruang metrik"
            },
            "course_ids": [
              "C20",
              "C90"
            ],
            "content_language": "en",
            "reader": {
              "url": "https://www.jirka.org/ra/html/sec_metric.html",
              "bytes": 81206,
              "sha256": "316fc23f24ef9bfdf955d2f156ca16be19ec878ed96439e9d4e95ab7b68a52fe"
            },
            "source": {
              "archive": "https://www.jirka.org/ra/",
              "member": "ch-metric.tex",
              "sha256": "7856d4f48bbab222662c0ceace9d3e7f97be2dfffc7bac38433017d6800f268a",
              "label": "sec:metric"
            },
            "author": "Jiří Lebl",
            "licence": "CC-BY-SA-4.0",
            "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
            "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
            "anchors": [
              "ptx-content",
              "sec_metric",
              "sec_metric-2",
              "sec_metric-3",
              "sec_metric-4",
              "sec_metric-5",
              "sec_metric-6",
              "sec_metric-6-1-1",
              "sec_metric-6-1-2",
              "metric_pos",
              "metric_pos-1",
              "metric_zero",
              "metric_zero-1",
              "metric_com",
              "metric_com-1",
              "metric_triang",
              "metric_triang-1",
              "sec_metric-6-1-3",
              "sec_metric-7",
              "fig_mstriang",
              "sec_metric-11",
              "sec_metric-12",
              "sec_metric-13",
              "sec_metric-13-1-1",
              "sec_metric-13-1-1-2",
              "sec_metric-13-1-1-6",
              "sec_metric-14",
              "sec_metric-14-1-1",
              "sec_metric-14-1-1-2",
              "sec_metric-14-1-1-10",
              "fig_tovertp1",
              "sec_metric-15",
              "sec_metric-16",
              "sec_metric-16-2-1",
              "sec_metric-16-2-1-1",
              "sec_metric-16-2-1-1",
              "sec_metric-16-2-1-4",
              "sec_metric-17",
              "sec_metric-17-1",
              "sec_metric-17-1-1",
              "sec_metric-17-1-2",
              "sec_metric-18",
              "sec_metric-18-1-1",
              "sec_metric-18-1-1-3",
              "sec_metric-18-1-1-6",
              "sec_metric-19",
              "sec_metric-19-1-1",
              "sec_metric-19-1-1-18",
              "sec_metric-20",
              "sec_metric-20-1-1",
              "sec_metric-20-1-1-3",
              "fig_msdiscmetric",
              "sec_metric-20-1-5",
              "example_msC01",
              "example_msC01-1-1",
              "example_msC01-1-1-4",
              "example_msC01-1-1-20",
              "example_msC01-1-2",
              "sec_metric-22",
              "sec_metric-22-1-1",
              "fig_spheremetric",
              "sec_metric-22-1-5",
              "sec_metric-23",
              "sec_metric-24",
              "sec_metric-24-1-1",
              "sec_metric-25",
              "sec_metric-25-1-1",
              "sec_metric-26",
              "sec_metric-27",
              "sec_metric-28",
              "sec_metric-28-1-1",
              "sec_metric-28-1-1-7",
              "sec_metric-29",
              "sec_metric-30",
              "sec_metric-31",
              "sec_metric-32",
              "sec_metric-32-1",
              "sec_metric-32-1-1",
              "sec_metric-32-2",
              "sec_metric-32-2-1",
              "sec_metric-33",
              "sec_metric-34",
              "sec_metric-34-1",
              "sec_metric-34-1-1-1",
              "sec_metric-34-2",
              "sec_metric-34-2-1-1",
              "sec_metric-34-3",
              "sec_metric-34-3-1-1",
              "sec_metric-34-4",
              "sec_metric-34-4-1-1",
              "sec_metric-34-5",
              "sec_metric-34-5-1-1",
              "exercise_mscross",
              "exercise_mscross-1-1",
              "exercise_mscross-1-2",
              "exercise_mscross-1-2-1",
              "exercise_mscross-1-2-1-1",
              "exercise_mscross-1-2-2",
              "exercise_mscross-1-2-2-1",
              "sec_metric-34-7",
              "sec_metric-34-7-1-1",
              "sec_metric-34-7-1-1-4",
              "exercise_mshausdorffpseudo",
              "exercise_mshausdorffpseudo-1-1",
              "exercise_mshausdorffpseudo-1-1-4",
              "exercise_mshausdorffpseudo-1-1-6",
              "exercise_mshausdorffpseudo-1-2",
              "exercise_mshausdorffpseudo-1-2-1",
              "exercise_mshausdorffpseudo-1-2-1-1",
              "exercise_mshausdorffpseudo-1-2-2",
              "exercise_mshausdorffpseudo-1-2-2-1",
              "exercise_mshausdorffpseudo-1-2-3",
              "exercise_mshausdorffpseudo-1-2-3-1",
              "sec_metric-34-9",
              "sec_metric-34-9-1-1",
              "sec_metric-34-9-1-2",
              "sec_metric-34-9-1-2-1",
              "sec_metric-34-9-1-2-1-1",
              "sec_metric-34-9-1-2-2",
              "sec_metric-34-9-1-2-2-1",
              "sec_metric-34-10",
              "sec_metric-34-10-1-1",
              "sec_metric-34-10-1-2",
              "sec_metric-34-10-1-2-1",
              "sec_metric-34-10-1-2-1-1",
              "sec_metric-34-10-1-2-2",
              "sec_metric-34-10-1-2-2-1",
              "sec_metric-34-10-1-2-3",
              "sec_metric-34-10-1-2-3-1",
              "sec_metric-34-11",
              "sec_metric-34-11-1-1",
              "sec_metric-34-11-1-2",
              "sec_metric-34-11-1-2-1",
              "sec_metric-34-11-1-2-1-1",
              "sec_metric-34-11-1-2-2",
              "sec_metric-34-11-1-2-2-1",
              "sec_metric-34-11-1-2-3",
              "sec_metric-34-11-1-2-3-1",
              "exercise_C1ab",
              "exercise_C1ab-1-1",
              "exercise_C1ab-1-1-3",
              "sec_metric-34-13",
              "sec_metric-34-13-1-1",
              "sec_metric-34-13-1-2",
              "sec_metric-34-13-1-2-1",
              "sec_metric-34-13-1-2-1-1",
              "sec_metric-34-13-1-2-1-1-6",
              "sec_metric-34-13-1-2-2",
              "sec_metric-34-13-1-2-2-1",
              "ptx-content-footer"
            ],
            "relation": "supplementary_reading",
            "mathematical_consumer_equivalence": "not_inferred",
            "whole_course_completion": false
          }
        ]
      },
      {
        "id": "C100",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Geometri: Euklides, Afin, Projektif, dan Non-Euklides",
          "en": "Euclidean and Non-Euclidean Geometry"
        },
        "prerequisites": [
          "B10",
          "B40",
          "B60"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C100",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C100"
        },
        "language_access": {
          "en": {
            "course_id": "C100",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C100",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://arxiv.org/html/1302.1630",
                  "label": "Euclidean plane and its relatives",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://github.com/mooculus/advancedGeometry/releases/download/v1.0/workbookOfTwoDimensionalGeometries.pdf",
                  "label": "A Workbook of Two-Dimensional Geometries",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/C100/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 9106,
                "sha256": "4eaf383d7d6a02459088cb676c3b4644b5327905992936238828fcb7b30c6a1a",
                "source_body_bytes": 6497,
                "source_body_sha256": "8e1dc34f115e7a95e6bbec99b5fd3d18d474fdf57117039ab15e5c53e357cdf9",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22102628/files/BIDANG_EUKLIDES_DAN_KERABATNYA_ID_SPINE_COMPLETE.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/C100/reader/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 3997502,
                "sha256": "44b7a29a25cff14c293b0468c02a4d9d4346b176f05fb95be1f146131a1ade7b",
                "source_body_bytes": 3994893,
                "source_body_sha256": "e20cb2b22e2b3e2691c68cba0ba71352ec81db954d41a98c7bacac6d31708add",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/geometry/pengajar.html",
                "label": "Susun rencana kegiatan geometri",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1621511,
                "sha256": "049b9c326b25e1b41f37bb34bc374af88f12b3fde567f87a7f5f5f1abe9b1b81",
                "source_body_bytes": 1618748,
                "source_body_sha256": "19ecef1a8b7b8c7d5a70ea37c3d98363e1710f42732d169cd0e90ae1e2f4f1ab",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/geometry/C100.html",
                "label": "Geometri: bacaan, latihan, konsep dan istilah",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 743105,
                "sha256": "7fec7f96fd5e97b8603d688b0fc3170c8da6803357f0efc13cd2d125949e997f",
                "source_body_bytes": 739698,
                "source_body_sha256": "2da10e03a37127c2c1b58eaf2cf31ff5691c9a4cab0826453a4fdbb1fb8e7cdb",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "portable_html",
                "url": "https://zenodo.org/records/22102628/files/BIDANG_EUKLIDES_DAN_KERABATNYA_ID_HTML_CH01_CH20.zip?download=1",
                "label": "Bahasa Indonesia — Download HTML",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 388840,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "epub",
                "url": "https://zenodo.org/records/22102628/files/BIDANG_EUKLIDES_DAN_KERABATNYA_ID_EPUB_CH01_CH20.epub?download=1",
                "label": "Bahasa Indonesia — Download EPUB",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 389787,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://zenodo.org/records/22151703/files/buku-kerja-geometri-dua-dimensi-id-unit001-022.pdf?download=1",
                "label": "Buku kerja geometri dua dimensi — lengkap 22/22 unit",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "436239ee2918f2ea43538c665aa9241ea207474e9c9ffcfc599121115ed1a90b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22102628",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/bidang-euklides-dan-kerabatnya-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C100",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C100",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/C100/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 9106,
                  "sha256": "4eaf383d7d6a02459088cb676c3b4644b5327905992936238828fcb7b30c6a1a",
                  "source_body_bytes": 6497,
                  "source_body_sha256": "8e1dc34f115e7a95e6bbec99b5fd3d18d474fdf57117039ab15e5c53e357cdf9",
                  "hosted_navigation_overlay": "v1"
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22102628/files/BIDANG_EUKLIDES_DAN_KERABATNYA_ID_SPINE_COMPLETE.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/C100/reader/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": 3997502,
                  "sha256": "44b7a29a25cff14c293b0468c02a4d9d4346b176f05fb95be1f146131a1ade7b",
                  "source_body_bytes": 3994893,
                  "source_body_sha256": "e20cb2b22e2b3e2691c68cba0ba71352ec81db954d41a98c7bacac6d31708add",
                  "hosted_navigation_overlay": "v1"
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://arxiv.org/html/1302.1630",
                  "label": "Euclidean plane and its relatives",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://github.com/mooculus/advancedGeometry/releases/download/v1.0/workbookOfTwoDimensionalGeometries.pdf",
                  "label": "A Workbook of Two-Dimensional Geometries",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "portable_html",
                "url": "https://zenodo.org/records/22102628/files/BIDANG_EUKLIDES_DAN_KERABATNYA_ID_HTML_CH01_CH20.zip?download=1",
                "label": "Unduh HTML",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 388840,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "epub",
                "url": "https://zenodo.org/records/22102628/files/BIDANG_EUKLIDES_DAN_KERABATNYA_ID_EPUB_CH01_CH20.epub?download=1",
                "label": "Unduh EPUB",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 389787,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/geometry/pengajar.html",
                "label": "Susun rencana kegiatan geometri",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1621511,
                "sha256": "049b9c326b25e1b41f37bb34bc374af88f12b3fde567f87a7f5f5f1abe9b1b81",
                "source_body_bytes": 1618748,
                "source_body_sha256": "19ecef1a8b7b8c7d5a70ea37c3d98363e1710f42732d169cd0e90ae1e2f4f1ab",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/geometry/C100.html",
                "label": "Geometri: bacaan, latihan, konsep dan istilah",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 743105,
                "sha256": "7fec7f96fd5e97b8603d688b0fc3170c8da6803357f0efc13cd2d125949e997f",
                "source_body_bytes": 739698,
                "source_body_sha256": "2da10e03a37127c2c1b58eaf2cf31ff5691c9a4cab0826453a4fdbb1fb8e7cdb",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://zenodo.org/records/22151703/files/buku-kerja-geometri-dua-dimensi-id-unit001-022.pdf?download=1",
                "label": "Buku kerja geometri dua dimensi — lengkap 22/22 unit",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "436239ee2918f2ea43538c665aa9241ea207474e9c9ffcfc599121115ed1a90b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22102628",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/bidang-euklides-dan-kerabatnya-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C100",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": null,
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "C110",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Analisis Numerik",
          "en": "Numerical Analysis"
        },
        "prerequisites": [
          "B30",
          "B40",
          "B80",
          "C10"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C110",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C110"
        },
        "language_access": {
          "en": {
            "course_id": "C110",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C110",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://raw.githubusercontent.com/lqbrin/tea-time-numerical/master/TeaTimeNumericalAnalysis.pdf",
                  "label": "Tea Time Numerical Analysis",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://zenodo.org/records/22075088/files/Tea-Time-Numerical-Analysis-id-ID.pdf?download=1",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c110/C110.html",
                "label": "C110 · Analisis Numerik",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 29664,
                "sha256": "a453f0bc38594384e28cfbfb71481d1a2d0f22253dd5c5e0fe057ea5eaaf8650",
                "source_body_bytes": 27323,
                "source_body_sha256": "11933e5548907fac3f16daa5a6b32bc56d4f58ad0dc9ad5c8212b8fffc8b0ddd",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22075088",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/tea-time-numerical-analysis-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C110",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C110",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://zenodo.org/records/22075088/files/Tea-Time-Numerical-Analysis-id-ID.pdf?download=1",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://raw.githubusercontent.com/lqbrin/tea-time-numerical/master/TeaTimeNumericalAnalysis.pdf",
                  "label": "Tea Time Numerical Analysis",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c110/C110.html",
                "label": "C110 · Analisis Numerik",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 29664,
                "sha256": "a453f0bc38594384e28cfbfb71481d1a2d0f22253dd5c5e0fe057ea5eaaf8650",
                "source_body_bytes": 27323,
                "source_body_sha256": "11933e5548907fac3f16daa5a6b32bc56d4f58ad0dc9ad5c8212b8fffc8b0ddd",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22075088",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/tea-time-numerical-analysis-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C110",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/tea-time-numerical-analysis-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "C120",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Pemodelan Matematis dan Dinamika Nonlinear",
          "en": "Mathematical Modeling and Nonlinear Dynamics"
        },
        "prerequisites": [
          "B70",
          "B80",
          "C10"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C120",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C120"
        },
        "language_access": {
          "en": {
            "course_id": "C120",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C120",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://opentextbooks.library.arizona.edu/mathematicalmodeling/",
                  "label": "Introduction to Mathematical Modeling",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/mathematical-modeling-nonlinear-dynamics-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22070943/files/01_Pengantar_Pemodelan_Matematika_Edisi_Bahasa_Indonesia_Lengkap.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c120/C120.html",
                "label": "C120 · Pemodelan dan Dinamika Nonlinear",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 47636,
                "sha256": "40bfc6d4474014823a22d8cefbaa5cc3b8e584402ee00fce3eed354eb07832eb",
                "source_body_bytes": 45339,
                "source_body_sha256": "826b54d2632780c1f3b9ef6c9c1feb353d4e991624153fe4134885fcc96b4d9f",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22070943",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/mathematical-modeling-nonlinear-dynamics-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C120",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C120",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/mathematical-modeling-nonlinear-dynamics-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22070943/files/01_Pengantar_Pemodelan_Matematika_Edisi_Bahasa_Indonesia_Lengkap.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://opentextbooks.library.arizona.edu/mathematicalmodeling/",
                  "label": "Introduction to Mathematical Modeling",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c120/C120.html",
                "label": "C120 · Pemodelan dan Dinamika Nonlinear",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 47636,
                "sha256": "40bfc6d4474014823a22d8cefbaa5cc3b8e584402ee00fce3eed354eb07832eb",
                "source_body_bytes": 45339,
                "source_body_sha256": "826b54d2632780c1f3b9ef6c9c1feb353d4e991624153fe4134885fcc96b4d9f",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22070943",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/mathematical-modeling-nonlinear-dynamics-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C120",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/mathematical-modeling-nonlinear-dynamics-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "C130",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Optimisasi Linear dan Integer / Riset Operasi",
          "en": "Linear and Integer Optimization"
        },
        "prerequisites": [
          "B40",
          "B80",
          "C70"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C130",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C130"
        },
        "language_access": {
          "en": {
            "course_id": "C130",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C130",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://open-optimization.github.io/open-optimization-or-book/html/",
                  "label": "Open Optimization: Linear and Integer Programming",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/open-optimization-or-book-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22070653/files/pemrograman-matematis-dan-riset-operasi-buku-1-id-ID.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c130/C130.html",
                "label": "Buka Riset Operasi — Buku 1",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 6999,
                "sha256": "a9dfe6cc6f837450759918f796f33822aad30f7d62c816efe759cda43bc2462f",
                "source_body_bytes": 4654,
                "source_body_sha256": "00e72cbd6a040c091e802c85e4c7f2856e2d14d03bc8e626a3ce6b70b9f50ed2",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c130-teacher/C130.teacher.html",
                "label": "C130 · Perencana tugas Riset Operasi",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 324915,
                "sha256": "ac4281ce61da8c5ed8784797f192f77df36a17c07e3acd026a5e3bdc4a0c7e94",
                "source_body_bytes": 322394,
                "source_body_sha256": "d3bcc1c3aa636a3d569a1bd6b364a2775911f697ed8c76a2acd7f2e67b4c37fc",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c130-native/ledger.html",
                "label": "C130 · Cari istilah dan catatan koreksi",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 402143,
                "sha256": "deaa935e7fd2bc1dc319899162da03f2dcae1a6cd4f184c81f51a730ebfcd48f",
                "source_body_bytes": 399450,
                "source_body_sha256": "f28b75d8223779a77bc3faee91758596be976b64e54a360ae5706f58246e71e8",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c130-teacher/C130.teacher.en.html",
                "label": "C130 · English Operations Research assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 324133,
                "sha256": "6758f9fce9d36fafe012c7fb17934c5a62329de0dbdf56dcbb88d501a4d2027b",
                "source_body_bytes": 321610,
                "source_body_sha256": "823c0326e60a59572371f5adf15c70214b8c6e3ce655b8c2216a5e707479cadd",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c130-native/ledger.en.html",
                "label": "C130 · Terminology and correction lookup",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 405150,
                "sha256": "72b7e116cbfd0e3ac32bcb5dcfbd5b7f0704dcc122fe2fb4efb8ba93be0c1f70",
                "source_body_bytes": 402461,
                "source_body_sha256": "bd8ffca5248d01a635f1d68a2e2bf16bc1a36e8d9e33ffd0b4dd8330040a28c9",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22070653",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/open-optimization-or-book-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C130",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C130",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/open-optimization-or-book-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22070653/files/pemrograman-matematis-dan-riset-operasi-buku-1-id-ID.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://open-optimization.github.io/open-optimization-or-book/html/",
                  "label": "Open Optimization: Linear and Integer Programming",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c130/C130.html",
                "label": "Buka Riset Operasi — Buku 1",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 6999,
                "sha256": "a9dfe6cc6f837450759918f796f33822aad30f7d62c816efe759cda43bc2462f",
                "source_body_bytes": 4654,
                "source_body_sha256": "00e72cbd6a040c091e802c85e4c7f2856e2d14d03bc8e626a3ce6b70b9f50ed2",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c130-teacher/C130.teacher.html",
                "label": "C130 · Perencana tugas Riset Operasi",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 324915,
                "sha256": "ac4281ce61da8c5ed8784797f192f77df36a17c07e3acd026a5e3bdc4a0c7e94",
                "source_body_bytes": 322394,
                "source_body_sha256": "d3bcc1c3aa636a3d569a1bd6b364a2775911f697ed8c76a2acd7f2e67b4c37fc",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c130-native/ledger.html",
                "label": "C130 · Cari istilah dan catatan koreksi",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 402143,
                "sha256": "deaa935e7fd2bc1dc319899162da03f2dcae1a6cd4f184c81f51a730ebfcd48f",
                "source_body_bytes": 399450,
                "source_body_sha256": "f28b75d8223779a77bc3faee91758596be976b64e54a360ae5706f58246e71e8",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c130-teacher/C130.teacher.en.html",
                "label": "C130 · English Operations Research assignment planner",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 324133,
                "sha256": "6758f9fce9d36fafe012c7fb17934c5a62329de0dbdf56dcbb88d501a4d2027b",
                "source_body_bytes": 321610,
                "source_body_sha256": "823c0326e60a59572371f5adf15c70214b8c6e3ce655b8c2216a5e707479cadd",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c130-native/ledger.en.html",
                "label": "C130 · Terminology and correction lookup",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 405150,
                "sha256": "72b7e116cbfd0e3ac32bcb5dcfbd5b7f0704dcc122fe2fb4efb8ba93be0c1f70",
                "source_body_bytes": 402461,
                "source_body_sha256": "bd8ffca5248d01a635f1d68a2e2bf16bc1a36e8d9e33ffd0b4dd8330040a28c9",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22070653",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/open-optimization-or-book-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C130",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/open-optimization-or-book-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "C140",
        "kind": "core",
        "level": "C",
        "title": {
          "id": "Statistika Matematis",
          "en": "Mathematical Statistics"
        },
        "prerequisites": [
          "B90",
          "B95",
          "B40",
          "C10"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C140",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C140"
        },
        "language_access": {
          "en": {
            "course_id": "C140",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-C140",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://online.stat.psu.edu/stat415/",
                  "label": "STAT 415: Mathematical Statistics",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://www.randomservices.org/random/point/Sufficient.html",
                  "label": "Sufficient, Complete, and Ancillary Statistics",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/penn-state-stat-415-id/index.html",
                "label": "Bahasa Indonesia — Read the STAT 415 course",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 24947,
                "sha256": "055bca74a3068a619ef9fb01dd3038c0e1b5b33da0b9de6f84337710047b48bb",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22208527/files/00_00_stat415-pengantar-statistika-matematis-id.pdf",
                "label": "Bahasa Indonesia — Download the STAT 415 textbook — 219 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 20170549,
                "sha256": "f39c1c438cc3e793fe9522eb11f5b02704d89fcdc7aecb2207a599087d458964",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/penn-state-stat-415-id/components/c140-companion/index.html",
                "label": "Bahasa Indonesia — Read the complete C5 companion — 146 solved problems",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 21723,
                "sha256": "3fe7d9cad39af310b797acbf5b4e7936067f3b1fbe0e6743860f0a4e1d00f406",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML ZIP",
                "url": "https://zenodo.org/records/22208527/files/06_C140_COMPANION_C5_OFFLINE_READER.zip",
                "label": "Bahasa Indonesia — Download the complete C5 companion",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 15803617,
                "sha256": "1abdd3746b2886216ef70b35e6f3064ddc60afa490bdd134b92995068abccf4b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c140/C140.html",
                "label": "C140 · Statistika Matematis",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 19917,
                "sha256": "25cdd0662be8ae8c5bb2ce952a1c2ecefa462f5c5857edbb10580d5d7eecc8ba",
                "source_body_bytes": 17210,
                "source_body_sha256": "21349de94a0f90088b3b6fe5df6009ac4c9b9e7ee9c73bcadb8c8c72b80a498a",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "epub",
                "url": "https://github.com/KokunoYumeto/penn-state-stat-415-id/releases/download/v2026.08.31.c140-companion-c5/00_01_stat415-pengantar-statistika-matematis-id.epub",
                "label": "Bahasa Indonesia — Download EPUB",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 12301415,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://zenodo.org/records/22208527/files/06_C140_COMPANION_C5_OFFLINE_READER.zip?download=1",
                "label": "Pendamping orisinal C140 — HTML luring lengkap",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "1abdd3746b2886216ef70b35e6f3064ddc60afa490bdd134b92995068abccf4b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22208527/files/16_C140_COMPANION_C5_SOURCE_BACKEND_DATA_RIGHTS.zip?download=1",
                "label": "Sumber, backend, data, dan hak C140 lengkap",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "4de938596957e2116d6292f4a5e493a98212e7f9d1c49de32ae6e57c5b746deb",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://kokunoyumeto.github.io/mathematical-statistics-id/",
                "label": "Komponen Random lengkap — HTML",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://zenodo.org/records/22076539/files/00_statistika-matematis-id-reader-2026.08.24.29.pdf?download=1",
                "label": "Komponen Random lengkap — PDF",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://doi.org/10.5281/zenodo.22076539",
                "label": "Komponen Random lengkap — DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22208527",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/penn-state-stat-415-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "C140",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-C140",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/penn-state-stat-415-id/index.html",
                  "label": "Baca mata kuliah STAT 415",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": true,
                  "bytes": 24947,
                  "sha256": "055bca74a3068a619ef9fb01dd3038c0e1b5b33da0b9de6f84337710047b48bb",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/records/22208527/files/00_00_stat415-pengantar-statistika-matematis-id.pdf",
                  "label": "Unduh buku STAT 415 — 219 halaman",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": true,
                  "bytes": 20170549,
                  "sha256": "f39c1c438cc3e793fe9522eb11f5b02704d89fcdc7aecb2207a599087d458964",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://online.stat.psu.edu/stat415/",
                  "label": "STAT 415: Mathematical Statistics",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://www.randomservices.org/random/point/Sufficient.html",
                  "label": "Sufficient, Complete, and Ancillary Statistics",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/penn-state-stat-415-id/components/c140-companion/index.html",
                "label": "Baca pendamping lengkap C5 — 146 soal terselesaikan",
                "label_language": "id",
                "primary": false,
                "offline_after_download": true,
                "bytes": 21723,
                "sha256": "3fe7d9cad39af310b797acbf5b4e7936067f3b1fbe0e6743860f0a4e1d00f406",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML ZIP",
                "url": "https://zenodo.org/records/22208527/files/06_C140_COMPANION_C5_OFFLINE_READER.zip",
                "label": "Unduh pendamping lengkap C5",
                "label_language": "id",
                "primary": false,
                "offline_after_download": true,
                "bytes": 15803617,
                "sha256": "1abdd3746b2886216ef70b35e6f3064ddc60afa490bdd134b92995068abccf4b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "epub",
                "url": "https://github.com/KokunoYumeto/penn-state-stat-415-id/releases/download/v2026.08.31.c140-companion-c5/00_01_stat415-pengantar-statistika-matematis-id.epub",
                "label": "Unduh EPUB",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 12301415,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/c140/C140.html",
                "label": "C140 · Statistika Matematis",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 19917,
                "sha256": "25cdd0662be8ae8c5bb2ce952a1c2ecefa462f5c5857edbb10580d5d7eecc8ba",
                "source_body_bytes": 17210,
                "source_body_sha256": "21349de94a0f90088b3b6fe5df6009ac4c9b9e7ee9c73bcadb8c8c72b80a498a",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://zenodo.org/records/22208527/files/06_C140_COMPANION_C5_OFFLINE_READER.zip?download=1",
                "label": "Pendamping orisinal C140 — HTML luring lengkap",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "1abdd3746b2886216ef70b35e6f3064ddc60afa490bdd134b92995068abccf4b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22208527/files/16_C140_COMPANION_C5_SOURCE_BACKEND_DATA_RIGHTS.zip?download=1",
                "label": "Sumber, backend, data, dan hak C140 lengkap",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "4de938596957e2116d6292f4a5e493a98212e7f9d1c49de32ae6e57c5b746deb",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://kokunoyumeto.github.io/mathematical-statistics-id/",
                "label": "Komponen Random lengkap — HTML",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://zenodo.org/records/22076539/files/00_statistika-matematis-id-reader-2026.08.24.29.pdf?download=1",
                "label": "Komponen Random lengkap — PDF",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://doi.org/10.5281/zenodo.22076539",
                "label": "Komponen Random lengkap — DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22208527",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/penn-state-stat-415-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "C140",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/mathematical-statistics-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "D10",
        "kind": "core",
        "level": "D",
        "title": {
          "id": "Ukuran dan Integrasi",
          "en": "Measure and Integration"
        },
        "prerequisites": [
          "C20",
          "C90"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D10",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D10"
        },
        "language_access": {
          "en": {
            "course_id": "D10",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D10",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF index",
                  "url": "https://www1.essex.ac.uk/maths/people/fremlin/mtcont.htm",
                  "label": "Fremlin: Measure Theory",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/D10/reader/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 11194,
                "sha256": "7e9fc432baf6bf24d7023009958a779453db36b76ec744ead78756815f3fbdcd",
                "source_body_bytes": 9125,
                "source_body_sha256": "fae1f5c9cd051c57235702014e789e22f17d3d3a6ed5226886f0fd0a7c196989",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22181780/files/00_READ_FIRST_FONDASI_TEORI_UKURAN_JILID_1_DAN_2_LENGKAP.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d10/D10.html",
                "label": "D10 · Ukuran dan Integrasi",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 139245,
                "sha256": "55c8bad73810af11cd1d1e09e782d6978aac735d2418d948365bbf14acdfb50d",
                "source_body_bytes": 137006,
                "source_body_sha256": "45fc13a2c992e6ab53b084e2fb6523ff505cc3afffa4670618d4431aed0d8ecf",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "portable_html",
                "url": "https://github.com/KokunoYumeto/fremlin-measure-theory-id/releases/download/v1.0.0/fondasi-teori-ukuran-jilid-1-2-lengkap-id-v1.0.0-source-backend.zip",
                "label": "Bahasa Indonesia — Download HTML",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 15167715,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22181780",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/fremlin-measure-theory-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "D10",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D10",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/D10/reader/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 11194,
                  "sha256": "7e9fc432baf6bf24d7023009958a779453db36b76ec744ead78756815f3fbdcd",
                  "source_body_bytes": 9125,
                  "source_body_sha256": "fae1f5c9cd051c57235702014e789e22f17d3d3a6ed5226886f0fd0a7c196989",
                  "hosted_navigation_overlay": "v1"
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22181780/files/00_READ_FIRST_FONDASI_TEORI_UKURAN_JILID_1_DAN_2_LENGKAP.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF index",
                  "url": "https://www1.essex.ac.uk/maths/people/fremlin/mtcont.htm",
                  "label": "Fremlin: Measure Theory",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "portable_html",
                "url": "https://github.com/KokunoYumeto/fremlin-measure-theory-id/releases/download/v1.0.0/fondasi-teori-ukuran-jilid-1-2-lengkap-id-v1.0.0-source-backend.zip",
                "label": "Unduh HTML",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 15167715,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d10/D10.html",
                "label": "D10 · Ukuran dan Integrasi",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 139245,
                "sha256": "55c8bad73810af11cd1d1e09e782d6978aac735d2418d948365bbf14acdfb50d",
                "source_body_bytes": 137006,
                "source_body_sha256": "45fc13a2c992e6ab53b084e2fb6523ff505cc3afffa4670618d4431aed0d8ecf",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22181780",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/fremlin-measure-theory-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "D10",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/fremlin-measure-theory-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "D20",
        "kind": "core",
        "level": "D",
        "title": {
          "id": "Analisis Fungsional",
          "en": "Functional Analysis"
        },
        "prerequisites": [
          "D10",
          "B40"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D20",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D20"
        },
        "language_access": {
          "en": {
            "course_id": "D20",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D20",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://web.pdx.edu/~erdman/FAOA/functional_analysis_operator_algebras_pdf.pdf",
                  "label": "Functional Analysis and Operator Algebras",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/D20/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 7805,
                "sha256": "7a81486699b667265823df0263ffda43da1f1dc76d37c190c50bcbac0bdd7de0",
                "source_body_bytes": 5656,
                "source_body_sha256": "81a5b38f704be590f957a8a248f32c2fc7bbb6280e6eaa66e262b6fb59e7dec9",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22088947/files/analisis-fungsional-dan-aljabar-operator-id-edisi-lengkap-dengan-pendamping.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/functional-analysis-erdman-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d20/D20.html",
                "label": "D20 · Analisis Fungsional",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 9508,
                "sha256": "3427d99547fc33a4371634f51f46c440cf0f20419cff362344e063af44e58c4d",
                "source_body_bytes": 7031,
                "source_body_sha256": "204fd2ad42e6715784039952c558c4041dc677ae56eea4a2410db4f248f5d1e5",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/functional-analysis-erdman-id/output/html-companion/index.html",
                "label": "Bahasa Indonesia — Complete solutions and spectral bridge — HTML",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 5682,
                "sha256": "e3e615c98717eef968097044f1feb00afc61175f29f4e4cc346685db5c512984",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "HTML ZIP",
                "url": "https://zenodo.org/records/22088947/files/functional-analysis-erdman-id-2026.08.25-backend-artifact-reconciliation-source-backend-html.zip?download=1",
                "label": "Bahasa Indonesia — Offline textbook and companion HTML — ZIP",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 3793368,
                "sha256": "ac5b3ec1fe7c2cf0a17eacce29c920ca5976c0c7d15e37f0ba0476afe9c48e32",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22088947",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/functional-analysis-erdman-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "D20",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D20",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/D20/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 7805,
                  "sha256": "7a81486699b667265823df0263ffda43da1f1dc76d37c190c50bcbac0bdd7de0",
                  "source_body_bytes": 5656,
                  "source_body_sha256": "81a5b38f704be590f957a8a248f32c2fc7bbb6280e6eaa66e262b6fb59e7dec9",
                  "hosted_navigation_overlay": "v1"
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22088947/files/analisis-fungsional-dan-aljabar-operator-id-edisi-lengkap-dengan-pendamping.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/functional-analysis-erdman-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://web.pdx.edu/~erdman/FAOA/functional_analysis_operator_algebras_pdf.pdf",
                  "label": "Functional Analysis and Operator Algebras",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "HTML ZIP",
                "url": "https://zenodo.org/records/22088947/files/functional-analysis-erdman-id-2026.08.25-backend-artifact-reconciliation-source-backend-html.zip?download=1",
                "label": "Buku dan pendamping HTML luring — ZIP",
                "label_language": "id",
                "primary": false,
                "offline_after_download": true,
                "bytes": 3793368,
                "sha256": "ac5b3ec1fe7c2cf0a17eacce29c920ca5976c0c7d15e37f0ba0476afe9c48e32",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d20/D20.html",
                "label": "D20 · Analisis Fungsional",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 9508,
                "sha256": "3427d99547fc33a4371634f51f46c440cf0f20419cff362344e063af44e58c4d",
                "source_body_bytes": 7031,
                "source_body_sha256": "204fd2ad42e6715784039952c558c4041dc677ae56eea4a2410db4f248f5d1e5",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/functional-analysis-erdman-id/output/html-companion/index.html",
                "label": "Solusi dan jembatan spektral — HTML lengkap",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 5682,
                "sha256": "e3e615c98717eef968097044f1feb00afc61175f29f4e4cc346685db5c512984",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22088947",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/functional-analysis-erdman-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "D20",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/functional-analysis-erdman-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "D30",
        "kind": "core",
        "level": "D",
        "title": {
          "id": "Probabilitas Teoretis-Ukuran dan Proses Stokastik",
          "en": "Measure-Theoretic Probability and Stochastic Processes"
        },
        "prerequisites": [
          "D10",
          "B90",
          "C140"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D30",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D30"
        },
        "language_access": {
          "en": {
            "course_id": "D30",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D30",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://www.randomservices.org/random/",
                  "label": "Random: Probability and Stochastic Processes",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://continuous-time-mcs.quantecon.org/intro.html",
                  "label": "Continuous Time Markov Chains",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://gordanz.github.io/stochastic-book/",
                  "label": "Intro to Stochastic Processes",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/D30/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 8029,
                "sha256": "853661995bb3101edfe82ca6bcc681796f27efac64612b1d690077e3a1e67ca2",
                "source_body_bytes": 5130,
                "source_body_sha256": "cd25170a7bd0a999eed34e95a7d58d814dd56bc636a6ec0c22563f1585a96375",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22182655/files/00_PROBABILITAS_TEORI_UKURAN_PROSES_STOKASTIK_ID_READER_CHECKPOINT_38.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/measure-theoretic-probability-stochastic-processes-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d30/D30.html",
                "label": "D30 · Probabilitas Teoretis-Ukuran dan Proses Stokastik",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 33632,
                "sha256": "ef1da988e0dde0318db96b1582e20bc5680410498c0e0f7e1715ef1a630d45a0",
                "source_body_bytes": 30563,
                "source_body_sha256": "1bfec9ec984896df03919b777ae1906765269e57ede3e7c2830a90a83f6ddbc2",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "portable_html",
                "url": "https://zenodo.org/records/22182655/files/PROBABILITAS_TEORI_UKURAN_PROSES_STOKASTIK_ID_READER_CHECKPOINT_38.zip?download=1",
                "label": "Bahasa Indonesia — Download HTML",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 3029582,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22182655",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/measure-theoretic-probability-stochastic-processes-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "D30",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D30",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/D30/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 8029,
                  "sha256": "853661995bb3101edfe82ca6bcc681796f27efac64612b1d690077e3a1e67ca2",
                  "source_body_bytes": 5130,
                  "source_body_sha256": "cd25170a7bd0a999eed34e95a7d58d814dd56bc636a6ec0c22563f1585a96375",
                  "hosted_navigation_overlay": "v1"
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22182655/files/00_PROBABILITAS_TEORI_UKURAN_PROSES_STOKASTIK_ID_READER_CHECKPOINT_38.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/measure-theoretic-probability-stochastic-processes-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://www.randomservices.org/random/",
                  "label": "Random: Probability and Stochastic Processes",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://continuous-time-mcs.quantecon.org/intro.html",
                  "label": "Continuous Time Markov Chains",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://gordanz.github.io/stochastic-book/",
                  "label": "Intro to Stochastic Processes",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "portable_html",
                "url": "https://zenodo.org/records/22182655/files/PROBABILITAS_TEORI_UKURAN_PROSES_STOKASTIK_ID_READER_CHECKPOINT_38.zip?download=1",
                "label": "Unduh HTML",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 3029582,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d30/D30.html",
                "label": "D30 · Probabilitas Teoretis-Ukuran dan Proses Stokastik",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 33632,
                "sha256": "ef1da988e0dde0318db96b1582e20bc5680410498c0e0f7e1715ef1a630d45a0",
                "source_body_bytes": 30563,
                "source_body_sha256": "1bfec9ec984896df03919b777ae1906765269e57ede3e7c2830a90a83f6ddbc2",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22182655",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/measure-theoretic-probability-stochastic-processes-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "D30",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/measure-theoretic-probability-stochastic-processes-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "D40",
        "kind": "core",
        "level": "D",
        "title": {
          "id": "Persamaan Diferensial Parsial",
          "en": "Partial Differential Equations"
        },
        "prerequisites": [
          "B70",
          "C110",
          "D10",
          "D20"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D40",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D40"
        },
        "language_access": {
          "en": {
            "course_id": "D40",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D40",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://openlibrary-repo.ecampusontario.ca/xmlui/bitstream/handle/123456789/2405/PDE_Benoit_Dionne_2024.pdf?isAllowed=y&sequence=1",
                  "label": "Dionne: Partial Differential Equations",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://jsdokken.com/dolfinx-tutorial/index.html",
                  "label": "The FEniCSx Tutorial",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/D40/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 6953,
                "sha256": "37aa20e5ea64741b1d670ccca28d470fa8f07b14765920ad4ca87c102117fefd",
                "source_body_bytes": 4302,
                "source_body_sha256": "d731e680943a8a2ed74a085a10fcf0eb2d0b3399820f947018b5fb973bd7c122",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22184259/files/PERSAMAAN_DIFERENSIAL_PARSIAL_DIONNE_ID_LENGKAP.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/readers/d40/unit14/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 9195,
                "sha256": "fbc62f76fd244753118f048dee79fb0ed202dfd311d8b943b938e66ec0be5564",
                "source_body_bytes": 6544,
                "source_body_sha256": "a7059a30fa4b991a4a1580e5bf7892d3e508619e5e66f507a13be0c51674bad7",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d40/D40.html",
                "label": "D40 · Persamaan Diferensial Parsial",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 41934,
                "sha256": "59be87f13a95b7a76c0ba1aaf8f82ecf221b0bf874c94591e3d3c463d534a220",
                "source_body_bytes": 39113,
                "source_body_sha256": "22755b53c06db5012c28288235b23e1d0ab68124703312c118a5f081baa3a6c7",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "portable_html",
                "url": "https://zenodo.org/records/22184259/files/D40_COMPLETE_ID_20260831.zip?download=1",
                "label": "Bahasa Indonesia — Download HTML",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 9436983,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22161412/files/SUMBER_DIONNE_UNIT14_20260829.zip?download=1",
                "label": "Sumber, backend, dan bukti rilis Unit 14",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "248b65a225e96f0a342ab2f6288aa303d28bfd2a8e108db14f7e125ef5401f0e",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22184259",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "D40",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D40",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/D40/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 6953,
                  "sha256": "37aa20e5ea64741b1d670ccca28d470fa8f07b14765920ad4ca87c102117fefd",
                  "source_body_bytes": 4302,
                  "source_body_sha256": "d731e680943a8a2ed74a085a10fcf0eb2d0b3399820f947018b5fb973bd7c122",
                  "hosted_navigation_overlay": "v1"
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22184259/files/PERSAMAAN_DIFERENSIAL_PARSIAL_DIONNE_ID_LENGKAP.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/readers/d40/unit14/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": 9195,
                  "sha256": "fbc62f76fd244753118f048dee79fb0ed202dfd311d8b943b938e66ec0be5564",
                  "source_body_bytes": 6544,
                  "source_body_sha256": "a7059a30fa4b991a4a1580e5bf7892d3e508619e5e66f507a13be0c51674bad7",
                  "hosted_navigation_overlay": "v1"
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://openlibrary-repo.ecampusontario.ca/xmlui/bitstream/handle/123456789/2405/PDE_Benoit_Dionne_2024.pdf?isAllowed=y&sequence=1",
                  "label": "Dionne: Partial Differential Equations",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://jsdokken.com/dolfinx-tutorial/index.html",
                  "label": "The FEniCSx Tutorial",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "portable_html",
                "url": "https://zenodo.org/records/22184259/files/D40_COMPLETE_ID_20260831.zip?download=1",
                "label": "Unduh HTML",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 9436983,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d40/D40.html",
                "label": "D40 · Persamaan Diferensial Parsial",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 41934,
                "sha256": "59be87f13a95b7a76c0ba1aaf8f82ecf221b0bf874c94591e3d3c463d534a220",
                "source_body_bytes": 39113,
                "source_body_sha256": "22755b53c06db5012c28288235b23e1d0ab68124703312c118a5f081baa3a6c7",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22161412/files/SUMBER_DIONNE_UNIT14_20260829.zip?download=1",
                "label": "Sumber, backend, dan bukti rilis Unit 14",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "248b65a225e96f0a342ab2f6288aa303d28bfd2a8e108db14f7e125ef5401f0e",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22184259",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "D40",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": null,
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "D50",
        "kind": "core",
        "level": "D",
        "title": {
          "id": "Lipatan Mulus dan Geometri Diferensial",
          "en": "Smooth Manifolds and Differential Geometry"
        },
        "prerequisites": [
          "C90",
          "B60",
          "C30"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D50",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D50"
        },
        "language_access": {
          "en": {
            "course_id": "D50",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D50",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://github.com/KokunoYumeto/brenner-differentialgeometrie-en/releases/download/v2026.09.01-complete/smooth-manifolds-differential-geometry-complete-en.pdf",
                  "label": "Smooth Manifolds and Differential Geometry — complete English PDF — 658 pages",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": true,
                  "bytes": 8160069,
                  "sha256": "dbbe985214a5642e08be0d6cb0302e3156e8d5dbc2c225a7e1fb2ecc554ffb28",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "de",
                  "media_type": "HTML",
                  "url": "https://de.wikiversity.org/wiki/Kurs:Differentialgeometrie_(Osnabr%C3%BCck_2023)",
                  "label": "Holger Brenner — Differentialgeometrie (Osnabrück 2023)",
                  "label_language": "de",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/brenner-differentialgeometrie-en/releases/download/v2026.09.01-complete/smooth-manifolds-differential-geometry-complete-html-20260901.zip",
                "label": "Complete English HTML ZIP — unzip; MathJax requires internet",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 5609567,
                "sha256": "dcddd62d88553b8db768dbae7ea0e64c7eb43e4b438c3eca37dfea1db41620cd",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "en",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22233733",
                "label": "Complete English geometry edition archive",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d50/reader/index.html",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 2584372,
                "sha256": "747c2a521d6956bd0407eede5e11fc3b70e809da30e22d03cddefff205c49f9a",
                "source_body_bytes": 2581857,
                "source_body_sha256": "ebee44b421d841f4be2ff22c2007f58c3c63b5042a63dfd96dcd079fc4d17c66",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22161090/files/geometri-diferensial-manifold-mulus-edisi-lengkap-id.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d50/index.html",
                "label": "D50 · Geometri Diferensial",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 7014,
                "sha256": "ebd0a947064d7f8276aa84a171d900d1d05350214a711221cd2c8d7fa7a36f25",
                "source_body_bytes": 4505,
                "source_body_sha256": "b8e4f3ea6f12fc23c400211e480122c5b97b4167cf4e4522c85ead3be0e5a3a1",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22161090",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/brenner-differentialgeometrie-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "D50",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D50",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d50/reader/index.html",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 2584372,
                  "sha256": "747c2a521d6956bd0407eede5e11fc3b70e809da30e22d03cddefff205c49f9a",
                  "source_body_bytes": 2581857,
                  "source_body_sha256": "ebee44b421d841f4be2ff22c2007f58c3c63b5042a63dfd96dcd079fc4d17c66",
                  "hosted_navigation_overlay": "v1"
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22161090/files/geometri-diferensial-manifold-mulus-edisi-lengkap-id.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "de",
                  "media_type": "HTML",
                  "url": "https://de.wikiversity.org/wiki/Kurs:Differentialgeometrie_(Osnabr%C3%BCck_2023)",
                  "label": "Holger Brenner — Differentialgeometrie (Osnabrück 2023)",
                  "label_language": "de",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "PDF",
                "url": "https://github.com/KokunoYumeto/brenner-differentialgeometrie-en/releases/download/v2026.09.01-complete/smooth-manifolds-differential-geometry-complete-en.pdf",
                "label": "Smooth Manifolds and Differential Geometry — complete English PDF — 658 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 8160069,
                "sha256": "dbbe985214a5642e08be0d6cb0302e3156e8d5dbc2c225a7e1fb2ecc554ffb28",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "en",
                "media_type": "HTML ZIP",
                "url": "https://github.com/KokunoYumeto/brenner-differentialgeometrie-en/releases/download/v2026.09.01-complete/smooth-manifolds-differential-geometry-complete-html-20260901.zip",
                "label": "Complete English HTML ZIP — unzip; MathJax requires internet",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 5609567,
                "sha256": "dcddd62d88553b8db768dbae7ea0e64c7eb43e4b438c3eca37dfea1db41620cd",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "en",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22233733",
                "label": "Complete English geometry edition archive",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d50/index.html",
                "label": "D50 · Geometri Diferensial",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 7014,
                "sha256": "ebd0a947064d7f8276aa84a171d900d1d05350214a711221cd2c8d7fa7a36f25",
                "source_body_bytes": 4505,
                "source_body_sha256": "b8e4f3ea6f12fc23c400211e480122c5b97b4167cf4e4522c85ead3be0e5a3a1",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22161090",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/brenner-differentialgeometrie-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "D50",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": null,
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "D60",
        "kind": "core",
        "level": "D",
        "title": {
          "id": "Topologi Aljabar",
          "en": "Algebraic Topology"
        },
        "prerequisites": [
          "C90",
          "C30"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D60",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D60"
        },
        "language_access": {
          "en": {
            "course_id": "D60",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D60",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://github.com/DavidMichaelRoberts/AlgebraicTopology2019/raw/master/Notes.pdf",
                  "label": "Roberts: Algebraic Topology",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://yp.srht.site/notes/math/algebraic_topology.pdf",
                  "label": "Fomberg: Algebraic Topology",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/algebraic-topology-id/roberts-001-030-fomberg-001-007-ca01-hints-r01-r06-ca02-ca03-lab01-lab02-lab03-lab04-capstone/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22168033/files/00_TOPOLOGI_ALJABAR_ID_ROBERTS_001_030_FOMBERG_001_007_CA01_HINTS_R01_R06_CA02_CA03_LAB01_LAB02_LAB03_LAB04_CAPSTONE_READER.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d60/D60.html",
                "label": "D60 · Topologi Aljabar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 18921,
                "sha256": "1e4c5612ac3e04f6509118c8a0484e63eb74f95d3f0267a3ff814798e829791a",
                "source_body_bytes": 16044,
                "source_body_sha256": "3f5cacb75f2ea610acb4b3fdb73fa38ccf0bbab0a405af4630d437eb1880f745",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22168033/files/TOPOLOGI_ALJABAR_ID_ROBERTS_001_030_FOMBERG_001_007_CA01_HINTS_R01_R06_CA02_CA03_LAB01_LAB02_LAB03_LAB04_CAPSTONE_EDITABLE_SOURCE_BACKEND.zip?download=1",
                "label": "Sumber dan backend D60 — arsip reproduksibilitas sekunder",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "f7670f6e6ad9a95ff808a1ddf4c2fdd8b41c6bce1916d33ac6fe5063be184b1b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22168033",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/algebraic-topology-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "D60",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D60",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/algebraic-topology-id/roberts-001-030-fomberg-001-007-ca01-hints-r01-r06-ca02-ca03-lab01-lab02-lab03-lab04-capstone/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22168033/files/00_TOPOLOGI_ALJABAR_ID_ROBERTS_001_030_FOMBERG_001_007_CA01_HINTS_R01_R06_CA02_CA03_LAB01_LAB02_LAB03_LAB04_CAPSTONE_READER.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://github.com/DavidMichaelRoberts/AlgebraicTopology2019/raw/master/Notes.pdf",
                  "label": "Roberts: Algebraic Topology",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://yp.srht.site/notes/math/algebraic_topology.pdf",
                  "label": "Fomberg: Algebraic Topology",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d60/D60.html",
                "label": "D60 · Topologi Aljabar",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 18921,
                "sha256": "1e4c5612ac3e04f6509118c8a0484e63eb74f95d3f0267a3ff814798e829791a",
                "source_body_bytes": 16044,
                "source_body_sha256": "3f5cacb75f2ea610acb4b3fdb73fa38ccf0bbab0a405af4630d437eb1880f745",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22168033/files/TOPOLOGI_ALJABAR_ID_ROBERTS_001_030_FOMBERG_001_007_CA01_HINTS_R01_R06_CA02_CA03_LAB01_LAB02_LAB03_LAB04_CAPSTONE_EDITABLE_SOURCE_BACKEND.zip?download=1",
                "label": "Sumber dan backend D60 — arsip reproduksibilitas sekunder",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "f7670f6e6ad9a95ff808a1ddf4c2fdd8b41c6bce1916d33ac6fe5063be184b1b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22168033",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/algebraic-topology-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "D60",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/algebraic-topology-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "D70",
        "kind": "core",
        "level": "D",
        "title": {
          "id": "Aljabar Pascasarjana",
          "en": "Graduate Algebra"
        },
        "prerequisites": [
          "C40",
          "B40"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D70",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D70"
        },
        "language_access": {
          "en": {
            "course_id": "D70",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D70",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/records/22216113/files/methods-of-algebra-volume-1-en.pdf?download=1",
                  "label": "Methods of Algebra, Volume 1 — complete English book — 457 pages",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": true,
                  "bytes": 2691212,
                  "sha256": "112eef57e92f685e90bdff963f5a01c046a5f7d1eedc88faf316c930be7d4017",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/records/22216113/files/duncan-representation-theory-en.pdf?download=1",
                  "label": "Duncan: Representation Theory — selected complete English component — 102 pages",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": true,
                  "bytes": 507750,
                  "sha256": "77c0f34dc28457dd750bf67c88857910c2a57ee8f70dd3dccbcca840854cf565",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/records/22216113/files/cring-selected-commutative-algebra-en.pdf?download=1",
                  "label": "CRing: Six selected commutative-algebra topics — English — 68 pages",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": true,
                  "bytes": 372132,
                  "sha256": "73e335b53f1ab156917962e2714d08b81030c8b16a72eb0dda944f4241df1521",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/records/22216113/files/o013-learning-route-and-mastery-en.pdf?download=1",
                  "label": "English learning route and mastery companion — 7 pages",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": true,
                  "bytes": 81315,
                  "sha256": "fa68a194127a2863484bc3e05b26010d81631e9c38ebcdd174b63856471aa07f",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "zh",
                  "media_type": "HTML",
                  "url": "https://wwli.asia/zh/docs/books/",
                  "label": "Wen-Wei Li — 代数学方法：卷一",
                  "label_language": "zh",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "en",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22216113",
                "label": "Full English advanced-algebra course archive",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/methods-of-algebra-volume-1-en",
                "label": "English source and modular backend",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://zenodo.org/records/22160944/files/01_metode-aljabar-jilid-1-id-lengkap.pdf?download=1",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d70/D70.html",
                "label": "D70 · Aljabar Pascasarjana",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 37025,
                "sha256": "bfa9bd3c7d9dde4ebcfe9ef12e7564fcbb954b91d89a3dc7ed2f9fb4de72030d",
                "source_body_bytes": 34586,
                "source_body_sha256": "3aee3aa02b5c332a80adb16c255fd7d175f0adf90c55158aa2ed48058a1f2cb3",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22160944",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/metode-aljabar-jilid-1-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "D70",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D70",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://zenodo.org/records/22160944/files/01_metode-aljabar-jilid-1-id-lengkap.pdf?download=1",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "zh",
                  "media_type": "HTML",
                  "url": "https://wwli.asia/zh/docs/books/",
                  "label": "Wen-Wei Li — 代数学方法：卷一",
                  "label_language": "zh",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22216113/files/methods-of-algebra-volume-1-en.pdf?download=1",
                "label": "Methods of Algebra, Volume 1 — complete English book — 457 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 2691212,
                "sha256": "112eef57e92f685e90bdff963f5a01c046a5f7d1eedc88faf316c930be7d4017",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22216113/files/duncan-representation-theory-en.pdf?download=1",
                "label": "Duncan: Representation Theory — selected complete English component — 102 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 507750,
                "sha256": "77c0f34dc28457dd750bf67c88857910c2a57ee8f70dd3dccbcca840854cf565",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22216113/files/cring-selected-commutative-algebra-en.pdf?download=1",
                "label": "CRing: Six selected commutative-algebra topics — English — 68 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 372132,
                "sha256": "73e335b53f1ab156917962e2714d08b81030c8b16a72eb0dda944f4241df1521",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "PDF",
                "url": "https://zenodo.org/records/22216113/files/o013-learning-route-and-mastery-en.pdf?download=1",
                "label": "English learning route and mastery companion — 7 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 81315,
                "sha256": "fa68a194127a2863484bc3e05b26010d81631e9c38ebcdd174b63856471aa07f",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "en",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22216113",
                "label": "Full English advanced-algebra course archive",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/methods-of-algebra-volume-1-en",
                "label": "English source and modular backend",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d70/D70.html",
                "label": "D70 · Aljabar Pascasarjana",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 37025,
                "sha256": "bfa9bd3c7d9dde4ebcfe9ef12e7564fcbb954b91d89a3dc7ed2f9fb4de72030d",
                "source_body_bytes": 34586,
                "source_body_sha256": "3aee3aa02b5c332a80adb16c255fd7d175f0adf90c55158aa2ed48058a1f2cb3",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22160944",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/metode-aljabar-jilid-1-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "D70",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/metode-aljabar-jilid-1-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "D80",
        "kind": "core",
        "level": "D",
        "title": {
          "id": "Teori Kategori dan Metode Homologis",
          "en": "Category Theory and Homological Methods"
        },
        "prerequisites": [
          "C30",
          "C80",
          "D70"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D80",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D80"
        },
        "language_access": {
          "en": {
            "course_id": "D80",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D80",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/methods-of-algebra-volume-2-en/",
                  "label": "Methods of Algebra, Volume 2 — complete corrected English HTML reader",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 4493910,
                  "sha256": "411fe6246743388ba9c5352732cc7958c02aa5dc578a54daecd4e6a5b317347e",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://raw.githubusercontent.com/KokunoYumeto/methods-of-algebra-volume-2-en/674ef26c04dba544e80a95a3f320a9961649407c/output/pdf/methods-of-algebra-volume-2-independent-english-edition.pdf",
                  "label": "Methods of Algebra, Volume 2 — English PDF and mastery bridges — 820 pages",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": true,
                  "bytes": 3894743,
                  "sha256": "8193d44ef52c9c39807e769ad04507130f163481f82aa9cfaa0a1a3022ef7aa5",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "zh",
                  "media_type": "HTML",
                  "url": "https://wwli.asia/zh/docs/books/",
                  "label": "Wen-Wei Li — 代数学方法：卷二",
                  "label_language": "zh",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "en",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22233942",
                "label": "Corrected English edition archive",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/methods-of-algebra-volume-2-en",
                "label": "English source and modular backend",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/metode-aljabar-jilid-2-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22167691/files/00_metode-dalam-aljabar-jilid-2-edisi-bahasa-indonesia.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d80/D80.html",
                "label": "D80 · Metode kategori dan homologi",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 74774,
                "sha256": "2e8dc98d4b5220a8db082ce5703f40f7b7da7a69325af4f024414a6726a470ee",
                "source_body_bytes": 72551,
                "source_body_sha256": "450c70101fb4d32b372ffa3358be0dc64e394c01e583e1c6ffc436ea310f9562",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "portable_html",
                "url": "https://zenodo.org/records/22167691/files/03_pembaca-html-offline.zip?download=1",
                "label": "Bahasa Indonesia — Download HTML",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1373063,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22167691/files/02_backend-semantik.zip?download=1",
                "label": "Backend semantik lengkap",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "6fe9db92148b6adb7a2c8cd2bc12eedebffd133ee485f78c3e36ed455f56e9fc",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22167691",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/metode-aljabar-jilid-2-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "D80",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D80",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/metode-aljabar-jilid-2-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22167691/files/00_metode-dalam-aljabar-jilid-2-edisi-bahasa-indonesia.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "zh",
                  "media_type": "HTML",
                  "url": "https://wwli.asia/zh/docs/books/",
                  "label": "Wen-Wei Li — 代数学方法：卷二",
                  "label_language": "zh",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "portable_html",
                "url": "https://zenodo.org/records/22167691/files/03_pembaca-html-offline.zip?download=1",
                "label": "Unduh HTML",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1373063,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/methods-of-algebra-volume-2-en/",
                "label": "Methods of Algebra, Volume 2 — complete corrected English HTML reader",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 4493910,
                "sha256": "411fe6246743388ba9c5352732cc7958c02aa5dc578a54daecd4e6a5b317347e",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "PDF",
                "url": "https://raw.githubusercontent.com/KokunoYumeto/methods-of-algebra-volume-2-en/674ef26c04dba544e80a95a3f320a9961649407c/output/pdf/methods-of-algebra-volume-2-independent-english-edition.pdf",
                "label": "Methods of Algebra, Volume 2 — English PDF and mastery bridges — 820 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 3894743,
                "sha256": "8193d44ef52c9c39807e769ad04507130f163481f82aa9cfaa0a1a3022ef7aa5",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "en",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22233942",
                "label": "Corrected English edition archive",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/methods-of-algebra-volume-2-en",
                "label": "English source and modular backend",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d80/D80.html",
                "label": "D80 · Metode kategori dan homologi",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 74774,
                "sha256": "2e8dc98d4b5220a8db082ce5703f40f7b7da7a69325af4f024414a6726a470ee",
                "source_body_bytes": 72551,
                "source_body_sha256": "450c70101fb4d32b372ffa3358be0dc64e394c01e583e1c6ffc436ea310f9562",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "source-package",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "source-archive",
                "url": "https://zenodo.org/records/22167691/files/02_backend-semantik.zip?download=1",
                "label": "Backend semantik lengkap",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "6fe9db92148b6adb7a2c8cd2bc12eedebffd133ee485f78c3e36ed455f56e9fc",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22167691",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/metode-aljabar-jilid-2-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "D80",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/metode-aljabar-jilid-2-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "D90",
        "kind": "core",
        "level": "D",
        "title": {
          "id": "Optimisasi Lanjut dan Analisis Konveks",
          "en": "Advanced Optimization and Convex Analysis"
        },
        "prerequisites": [
          "C110",
          "C130",
          "D20"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D90",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D90"
        },
        "language_access": {
          "en": {
            "course_id": "D90",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D90",
            "program_hosted_reader": {
              "status": "not-yet-hosted",
              "resources": []
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://arxiv.org/pdf/2607.11664",
                  "label": "Habring: Convex Optimization",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/advanced-optimization-convex-analysis-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22543810/files/D90-O015-optimisasi-lanjut-analisis-konveks-id.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d90/D90.html",
                "label": "D90 · Optimisasi Lanjut dan Analisis Konveks",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 115051,
                "sha256": "e6e0f0ec3783d2026969c3338df0feee92ea79795b24b083eaf01cf91351b661",
                "source_body_bytes": 112850,
                "source_body_sha256": "f604b22509f6ffa1f61a4d07c2ee9949ce306fb3977da91cc07c9de3040cb04c",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/readers/d90/original-02/",
                "label": "Bahasa Indonesia — Original-02 tranche — central HTML",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 192711,
                "sha256": "e0bfedd9ed2a95ed576b4b884ef8ff74dc3c319e9394c04f9961c4bb364f2056",
                "source_body_bytes": 190680,
                "source_body_sha256": "d867f4551cf05e531cc6f53336a55b9ba3ee0dfffbc4acede425e1bceae82a24",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "epub",
                "url": "https://zenodo.org/records/22142120/files/D90-O015-optimisasi-lanjut-analisis-konveks-id.epub?download=1",
                "label": "Bahasa Indonesia — Download EPUB",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 379901,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22543810",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/advanced-optimization-convex-analysis-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "D90",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D90",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/advanced-optimization-convex-analysis-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22543810/files/D90-O015-optimisasi-lanjut-analisis-konveks-id.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://arxiv.org/pdf/2607.11664",
                  "label": "Habring: Convex Optimization",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "epub",
                "url": "https://zenodo.org/records/22142120/files/D90-O015-optimisasi-lanjut-analisis-konveks-id.epub?download=1",
                "label": "Unduh EPUB",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 379901,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d90/D90.html",
                "label": "D90 · Optimisasi Lanjut dan Analisis Konveks",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 115051,
                "sha256": "e6e0f0ec3783d2026969c3338df0feee92ea79795b24b083eaf01cf91351b661",
                "source_body_bytes": 112850,
                "source_body_sha256": "f604b22509f6ffa1f61a4d07c2ee9949ce306fb3977da91cc07c9de3040cb04c",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/readers/d90/original-02/",
                "label": "Tranche Original-02 — HTML pusat",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 192711,
                "sha256": "e0bfedd9ed2a95ed576b4b884ef8ff74dc3c319e9394c04f9961c4bb364f2056",
                "source_body_bytes": 190680,
                "source_body_sha256": "d867f4551cf05e531cc6f53336a55b9ba3ee0dfffbc4acede425e1bceae82a24",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22543810",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/advanced-optimization-convex-analysis-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "D90",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/advanced-optimization-convex-analysis-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "D100",
        "kind": "core",
        "level": "D",
        "title": {
          "id": "Jembatan Geometri Aljabar",
          "en": "Algebraic Geometry Bridge"
        },
        "prerequisites": [
          "D70",
          "D80",
          "C90",
          "D60"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D100",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D100"
        },
        "language_access": {
          "en": {
            "course_id": "D100",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D100",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-mirror",
                  "relation_to_source": "mirror-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/D100/reader/",
                  "label": "Program-hosted Algebraic Geometry Bridge — complete English HTML reader",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 4780,
                  "sha256": "9da1082ab1bc3a820cdec7d832c05401474b30754f42391e5015902fc6666317",
                  "source_body_bytes": 1415,
                  "source_body_sha256": "7e8dce9036872f91b191c3a87baa5ba0d4a86b22ed4beff2460d136742de2906",
                  "hosted_navigation_overlay": "v1"
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-mirror",
                  "relation_to_source": "mirror-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/D100/reader/ak.html",
                  "label": "Program-hosted Algebraic Curves — complete English HTML reader",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": 4919455,
                  "sha256": "c0f2b33ba1a2bf431b808b0a4f37fe2869e02c99705e6c82a4da4913f2c46495",
                  "source_body_bytes": 4915940,
                  "source_body_sha256": "fec5974b05b6791fe1ad183fa2109ec0efc2e74dd99625a154998f2bf080d3f3",
                  "hosted_navigation_overlay": "v1"
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-mirror",
                  "relation_to_source": "mirror-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/D100/reader/bgk.html",
                  "label": "Program-hosted Bundles, Sheaves and Cohomology — complete English HTML reader",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": 4347141,
                  "sha256": "855e49eff1cad56907487f2d4aab15d20790a221fb9c7adbc2db507b657a98b4",
                  "source_body_bytes": 4343626,
                  "source_body_sha256": "6bea7b292a660dada79f3bc2ce2913f27d26e3b9a571f90e3afb07056fcdf242",
                  "hosted_navigation_overlay": "v1"
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-mirror",
                  "relation_to_source": "mirror-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/D100/reader/companion.html",
                  "label": "Program-hosted From Varieties to Schemes — English HTML companion",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": 1491013,
                  "sha256": "19fa9dbdf763d252b53448039c56d902c7bcc6566cd81a123c4042cdd3b58776",
                  "source_body_bytes": 1487498,
                  "source_body_sha256": "064bbcb8065d55a3be3bfe0a9127af166b77d47499db08f9d1ae531d366a50f2",
                  "hosted_navigation_overlay": "v1"
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/algebraic-geometry-bridge-id/en/",
                  "label": "Original English-edition website — alternate complete HTML host",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://github.com/KokunoYumeto/algebraic-geometry-bridge-id/releases/download/en-v1.0.0/01_Algebraic-Curves_en_Units-01-30.pdf",
                  "label": "Algebraic Curves — complete English course — 504 pages",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": true,
                  "bytes": 16029193,
                  "sha256": "547a0e8f5185cd133edac64cac42ecb7590947ff74d45efe0eb66db7c0a62b46",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://github.com/KokunoYumeto/algebraic-geometry-bridge-id/releases/download/en-v1.0.0/03_Bundles-Sheaves-and-Cohomology_en_Units-01-30.pdf",
                  "label": "Bundles, Sheaves and Cohomology — complete English course — 381 pages",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": true,
                  "bytes": 2953314,
                  "sha256": "dffad20f1945c6f0183414cd88fa29e34e230dac14b7fae429ad09c96be4c0f1",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "PDF",
                  "url": "https://github.com/KokunoYumeto/algebraic-geometry-bridge-id/releases/download/en-v1.0.0/05_From-Varieties-to-Schemes_Original-Editorial-Companion_en.pdf",
                  "label": "From Varieties to Schemes — editorial companion — 89 pages",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": true,
                  "bytes": 808762,
                  "sha256": "9272957782c4c8cf7c1b2a12c7edbf445db64270e0a62a37688b9301d925b6a2",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "de",
                  "media_type": "HTML",
                  "url": "https://de.wikiversity.org/wiki/Kurs:Algebraische_Kurven_(Osnabr%C3%BCck_2025-2026)",
                  "label": "Holger Brenner — Algebraische Kurven (Osnabrück 2025–2026)",
                  "label_language": "de",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "de",
                  "media_type": "HTML",
                  "url": "https://de.wikiversity.org/wiki/Kurs:Algebraische_Kurven_(Osnabr%C3%BCck_2012)",
                  "label": "Holger Brenner — Algebraische Kurven (Osnabrück 2012)",
                  "label_language": "de",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "de",
                  "media_type": "HTML",
                  "url": "https://de.wikiversity.org/wiki/Kurs:B%C3%BCndel,_Garben_und_Kohomologie_(Osnabr%C3%BCck_2019-2020)",
                  "label": "Holger Brenner — Bündel, Garben und Kohomologie (2019–2020)",
                  "label_language": "de",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "en",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22543825",
                "label": "Complete bilingual edition archive — 974 pages with universal reader navigation",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/algebraic-geometry-bridge-id",
                "label": "English source and modular backend",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/api/records/22543825/files/01_Kurva-Aljabar_id-ID_Units-01-30_corr1.pdf/content",
                "label": "Bahasa Indonesia — Algebraic Curves — all 30 units — 505 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 16026554,
                "sha256": "5af87fd1fd4b85c76bc4fa83e655bdb47d859700a3e57b2d4e7c0ca9c4cf5421",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/algebraic-geometry-bridge-id/",
                "label": "Bahasa Indonesia — Read Algebraic Curves — all 30 units",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 23808146,
                "sha256": "d9aebfade01203e7b0c20cf468d544365f6a51fcf994ba8419ee28e93ec83b89",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://zenodo.org/api/records/22543825/files/02_Kurva-Aljabar_id-ID_Units-01-30_corr1.html/content",
                "label": "Bahasa Indonesia — Download complete Algebraic Curves HTML",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 23775120,
                "sha256": "c956521f3173889099771eebc8815a613d736ea685d4b11ea266710271af777b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/api/records/22543825/files/01_Bundel-Berkas-dan-Kohomologi_id-ID_Units-01-30_corr1.pdf/content",
                "label": "Bahasa Indonesia — Bundles, Sheaves and Cohomology — all 30 units — 380 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 2943608,
                "sha256": "34fb81e572f60e20e4dadff9f5040da7abf9882bbf5cf64a425a03297428a436",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/algebraic-geometry-bridge-id/bgk/",
                "label": "Bahasa Indonesia — Read Bundles, Sheaves and Cohomology — all 30 units",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 6839675,
                "sha256": "8f27972340bbe1dddd45294db6a637c64656cfa1b27d4bd4d54632c84ec3e886",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://zenodo.org/api/records/22543825/files/02_Bundel-Berkas-dan-Kohomologi_id-ID_Units-01-30_corr1.html/content",
                "label": "Bahasa Indonesia — Download complete Bundles, Sheaves and Cohomology HTML",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 6839229,
                "sha256": "a37e060ed1ea3c30860380cc07ccdbc269dc1b115c865fe5b9d063382217414f",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/api/records/22543825/files/01_Pendamping-Editorial-Varietas-ke-Skema_id-ID_corr1.pdf/content",
                "label": "Bahasa Indonesia — Companion: from varieties to schemes — 90 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 747673,
                "sha256": "ed54f440409b2aa7beb5a1ff24be0e54de7845576f3f4d06e88fd58c9feb2131",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML ZIP",
                "url": "https://zenodo.org/api/records/22543825/files/02_Pendamping-Editorial-Varietas-ke-Skema_id-ID_corr1_html.zip/content",
                "label": "Bahasa Indonesia — Download the companion HTML package",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 2784305,
                "sha256": "487c13991626f0e2c524d5c455930b83b6b242d54d8915087edf4823f1303bdc",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d100/D100.html",
                "label": "D100 · Algebraic Geometry capability (English)",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 362956,
                "sha256": "4d473facb965f106ff20b2d5a55f3366ef251ce3834148ec61a36d131719eebc",
                "source_body_bytes": 359425,
                "source_body_sha256": "c06be44747a4767271e26c55c0b6bc747645a7800d9414899b2e9c9b0bf6be3b",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://zenodo.org/records/22543825/files/01_Pendamping-Editorial-Varietas-ke-Skema_id-ID_corr1.pdf?download=1",
                "label": "Pendamping Editorial: Dari Varietas ke Skema",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "ed54f440409b2aa7beb5a1ff24be0e54de7845576f3f4d06e88fd58c9feb2131",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "D100",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D100",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "PDF",
                  "url": "https://zenodo.org/api/records/22543825/files/01_Kurva-Aljabar_id-ID_Units-01-30_corr1.pdf/content",
                  "label": "Kurva Aljabar — 30 unit lengkap — 505 halaman",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": true,
                  "bytes": 16026554,
                  "sha256": "5af87fd1fd4b85c76bc4fa83e655bdb47d859700a3e57b2d4e7c0ca9c4cf5421",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/algebraic-geometry-bridge-id/",
                  "label": "Baca Kurva Aljabar — 30 unit lengkap",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": 23808146,
                  "sha256": "d9aebfade01203e7b0c20cf468d544365f6a51fcf994ba8419ee28e93ec83b89",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/algebraic-geometry-bridge-id/bgk/",
                  "label": "Baca Bundel, Berkas, dan Kohomologi — 30 unit lengkap",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": 6839675,
                  "sha256": "8f27972340bbe1dddd45294db6a637c64656cfa1b27d4bd4d54632c84ec3e886",
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "de",
                  "media_type": "HTML",
                  "url": "https://de.wikiversity.org/wiki/Kurs:Algebraische_Kurven_(Osnabr%C3%BCck_2025-2026)",
                  "label": "Holger Brenner — Algebraische Kurven (Osnabrück 2025–2026)",
                  "label_language": "de",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "de",
                  "media_type": "HTML",
                  "url": "https://de.wikiversity.org/wiki/Kurs:Algebraische_Kurven_(Osnabr%C3%BCck_2012)",
                  "label": "Holger Brenner — Algebraische Kurven (Osnabrück 2012)",
                  "label_language": "de",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "de",
                  "media_type": "HTML",
                  "url": "https://de.wikiversity.org/wiki/Kurs:B%C3%BCndel,_Garben_und_Kohomologie_(Osnabr%C3%BCck_2019-2020)",
                  "label": "Holger Brenner — Bündel, Garben und Kohomologie (2019–2020)",
                  "label_language": "de",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://zenodo.org/api/records/22543825/files/02_Kurva-Aljabar_id-ID_Units-01-30_corr1.html/content",
                "label": "Unduh HTML Kurva Aljabar lengkap",
                "label_language": "id",
                "primary": false,
                "offline_after_download": true,
                "bytes": 23775120,
                "sha256": "c956521f3173889099771eebc8815a613d736ea685d4b11ea266710271af777b",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML",
                "url": "https://zenodo.org/api/records/22543825/files/02_Bundel-Berkas-dan-Kohomologi_id-ID_Units-01-30_corr1.html/content",
                "label": "Unduh HTML Bundel, Berkas, dan Kohomologi lengkap",
                "label_language": "id",
                "primary": false,
                "offline_after_download": true,
                "bytes": 6839229,
                "sha256": "a37e060ed1ea3c30860380cc07ccdbc269dc1b115c865fe5b9d063382217414f",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "HTML ZIP",
                "url": "https://zenodo.org/api/records/22543825/files/02_Pendamping-Editorial-Varietas-ke-Skema_id-ID_corr1_html.zip/content",
                "label": "Unduh paket HTML pendamping",
                "label_language": "id",
                "primary": false,
                "offline_after_download": true,
                "bytes": 2784305,
                "sha256": "487c13991626f0e2c524d5c455930b83b6b242d54d8915087edf4823f1303bdc",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-mirror",
                "relation_to_source": "mirror-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/D100/reader/",
                "label": "Program-hosted Algebraic Geometry Bridge — complete English HTML reader",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 4780,
                "sha256": "9da1082ab1bc3a820cdec7d832c05401474b30754f42391e5015902fc6666317",
                "source_body_bytes": 1415,
                "source_body_sha256": "7e8dce9036872f91b191c3a87baa5ba0d4a86b22ed4beff2460d136742de2906",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-mirror",
                "relation_to_source": "mirror-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/D100/reader/ak.html",
                "label": "Program-hosted Algebraic Curves — complete English HTML reader",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 4919455,
                "sha256": "c0f2b33ba1a2bf431b808b0a4f37fe2869e02c99705e6c82a4da4913f2c46495",
                "source_body_bytes": 4915940,
                "source_body_sha256": "fec5974b05b6791fe1ad183fa2109ec0efc2e74dd99625a154998f2bf080d3f3",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-mirror",
                "relation_to_source": "mirror-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/D100/reader/bgk.html",
                "label": "Program-hosted Bundles, Sheaves and Cohomology — complete English HTML reader",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 4347141,
                "sha256": "855e49eff1cad56907487f2d4aab15d20790a221fb9c7adbc2db507b657a98b4",
                "source_body_bytes": 4343626,
                "source_body_sha256": "6bea7b292a660dada79f3bc2ce2913f27d26e3b9a571f90e3afb07056fcdf242",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-mirror",
                "relation_to_source": "mirror-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/D100/reader/companion.html",
                "label": "Program-hosted From Varieties to Schemes — English HTML companion",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 1491013,
                "sha256": "19fa9dbdf763d252b53448039c56d902c7bcc6566cd81a123c4042cdd3b58776",
                "source_body_bytes": 1487498,
                "source_body_sha256": "064bbcb8065d55a3be3bfe0a9127af166b77d47499db08f9d1ae531d366a50f2",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/algebraic-geometry-bridge-id/en/",
                "label": "Original English-edition website — alternate complete HTML host",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "PDF",
                "url": "https://github.com/KokunoYumeto/algebraic-geometry-bridge-id/releases/download/en-v1.0.0/01_Algebraic-Curves_en_Units-01-30.pdf",
                "label": "Algebraic Curves — complete English course — 504 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 16029193,
                "sha256": "547a0e8f5185cd133edac64cac42ecb7590947ff74d45efe0eb66db7c0a62b46",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "PDF",
                "url": "https://github.com/KokunoYumeto/algebraic-geometry-bridge-id/releases/download/en-v1.0.0/03_Bundles-Sheaves-and-Cohomology_en_Units-01-30.pdf",
                "label": "Bundles, Sheaves and Cohomology — complete English course — 381 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 2953314,
                "sha256": "dffad20f1945c6f0183414cd88fa29e34e230dac14b7fae429ad09c96be4c0f1",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "PDF",
                "url": "https://github.com/KokunoYumeto/algebraic-geometry-bridge-id/releases/download/en-v1.0.0/05_From-Varieties-to-Schemes_Original-Editorial-Companion_en.pdf",
                "label": "From Varieties to Schemes — editorial companion — 89 pages",
                "label_language": "en",
                "primary": false,
                "offline_after_download": true,
                "bytes": 808762,
                "sha256": "9272957782c4c8cf7c1b2a12c7edbf445db64270e0a62a37688b9301d925b6a2",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "en",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22543825",
                "label": "Complete bilingual edition archive — 974 pages with universal reader navigation",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/algebraic-geometry-bridge-id",
                "label": "English source and modular backend",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/api/records/22543825/files/01_Bundel-Berkas-dan-Kohomologi_id-ID_Units-01-30_corr1.pdf/content",
                "label": "Bundel, Berkas, dan Kohomologi — 30 unit lengkap — 380 halaman",
                "label_language": "id",
                "primary": false,
                "offline_after_download": true,
                "bytes": 2943608,
                "sha256": "34fb81e572f60e20e4dadff9f5040da7abf9882bbf5cf64a425a03297428a436",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "PDF",
                "url": "https://zenodo.org/api/records/22543825/files/01_Pendamping-Editorial-Varietas-ke-Skema_id-ID_corr1.pdf/content",
                "label": "Pendamping: dari varietas ke skema — 90 halaman",
                "label_language": "id",
                "primary": false,
                "offline_after_download": true,
                "bytes": 747673,
                "sha256": "ed54f440409b2aa7beb5a1ff24be0e54de7845576f3f4d06e88fd58c9feb2131",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d100/D100.html",
                "label": "D100 · Algebraic Geometry capability (English)",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 362956,
                "sha256": "4d473facb965f106ff20b2d5a55f3366ef251ce3834148ec61a36d131719eebc",
                "source_body_bytes": 359425,
                "source_body_sha256": "c06be44747a4767271e26c55c0b6bc747645a7800d9414899b2e9c9b0bf6be3b",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "companion",
                "authority_role": "program-edition",
                "relation_to_source": "companion-to",
                "content_language": "id",
                "media_type": "companion",
                "url": "https://zenodo.org/records/22543825/files/01_Pendamping-Editorial-Varietas-ke-Skema_id-ID_corr1.pdf?download=1",
                "label": "Pendamping Editorial: Dari Varietas ke Skema",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": "ed54f440409b2aa7beb5a1ff24be0e54de7845576f3f4d06e88fd58c9feb2131",
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "D100",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/algebraic-geometry-bridge-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "D110",
        "kind": "core",
        "level": "D",
        "title": {
          "id": "Matematika Terformalisasi dalam Lean",
          "en": "Formalized Mathematics in Lean"
        },
        "prerequisites": [
          "B10",
          "B40",
          "C10",
          "C30"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D110",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D110"
        },
        "language_access": {
          "en": {
            "course_id": "D110",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D110",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-mirror",
                  "relation_to_source": "mirror-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/D110/",
                  "label": "Program-hosted original English HTML reader",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 15632,
                  "sha256": "ae278746849d021de9671a6cb98e8833c766b5b065012b40ecafa15df0c56b06",
                  "source_body_bytes": 13331,
                  "source_body_sha256": "37d488d1d49d8eab27604074eca6f8805cd375b41feef98341e93360d7e6b7be",
                  "hosted_navigation_overlay": "v1"
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://leanprover-community.github.io/mathematics_in_lean/",
                  "label": "Authoritative original — Mathematics in Lean",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/mathematics-in-lean-id/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22062017/files/matematika-dalam-lean-bahasa-indonesia.pdf?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d110/index.html",
                "label": "D110 · Matematika dalam Lean",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 12472,
                "sha256": "e312dedf0d61d12938a899418d37188dc38e653626da3a729d5b28e625256526",
                "source_body_bytes": 10015,
                "source_body_sha256": "8076402352e612b71da1160fab021b5d28f0811072b1bf01672a95d7e0dc4fd4",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d110/index.en.html",
                "label": "D110 · English study selection and source support",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 13298,
                "sha256": "c3095b36aa7f64330cf294c3be8e9c56676bf3a5cd9f05e31f1aa23d2c143a28",
                "source_body_bytes": 10839,
                "source_body_sha256": "c9988e3ef13a8e1af1f05d72bc4926d0b274d651a58d53341adf370352bb05f7",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22062017",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/mathematics-in-lean-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "D110",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D110",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/mathematics-in-lean-id/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "id",
                  "media_type": "edition",
                  "url": "https://zenodo.org/records/22062017/files/matematika-dalam-lean-bahasa-indonesia.pdf?download=1",
                  "label": "Unduh",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "upstream-authority",
                  "relation_to_source": "source",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://leanprover-community.github.io/mathematics_in_lean/",
                  "label": "Authoritative original — Mathematics in Lean",
                  "label_language": "en",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-mirror",
                "relation_to_source": "mirror-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/courses/D110/",
                "label": "Program-hosted original English HTML reader",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 15632,
                "sha256": "ae278746849d021de9671a6cb98e8833c766b5b065012b40ecafa15df0c56b06",
                "source_body_bytes": 13331,
                "source_body_sha256": "37d488d1d49d8eab27604074eca6f8805cd375b41feef98341e93360d7e6b7be",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d110/index.html",
                "label": "D110 · Matematika dalam Lean",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 12472,
                "sha256": "e312dedf0d61d12938a899418d37188dc38e653626da3a729d5b28e625256526",
                "source_body_bytes": 10015,
                "source_body_sha256": "8076402352e612b71da1160fab021b5d28f0811072b1bf01672a95d7e0dc4fd4",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d110/index.en.html",
                "label": "D110 · English study selection and source support",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 13298,
                "sha256": "c3095b36aa7f64330cf294c3be8e9c56676bf3a5cd9f05e31f1aa23d2c143a28",
                "source_body_bytes": 10839,
                "source_body_sha256": "c9988e3ef13a8e1af1f05d72bc4926d0b274d651a58d53341adf370352bb05f7",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22062017",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/mathematics-in-lean-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "D110",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/mathematics-in-lean-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      },
      {
        "id": "D120",
        "kind": "core",
        "level": "D",
        "title": {
          "id": "Membaca Riset, Eksposisi, dan Kerja Matematis Reprodusibel",
          "en": "Research Reading and Reproducible Mathematical Work"
        },
        "prerequisites": [
          "C20",
          "C40",
          "B80"
        ],
        "routes": {
          "en": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D120",
          "id": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D120"
        },
        "language_access": {
          "en": {
            "course_id": "D120",
            "interface_locale": "en",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/#course-D120",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "translation-of",
                  "content_language": "en",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/kerja-matematika-yang-dapat-ditelusuri-id/en/",
                  "label": "Traceable Mathematical Work — complete English edition",
                  "label_language": "en",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "program-authority",
                  "relation_to_source": "source",
                  "content_language": "id",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/kerja-matematika-yang-dapat-ditelusuri-id/",
                  "label": "Kerja Matematis yang Dapat Ditelusuri",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "original-work",
                "content_language": "id",
                "media_type": "reader",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/D120/reader/",
                "label": "Bahasa Indonesia — Open learning material",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 38741,
                "sha256": "8069ff963969bf29b50c38b4383e0387fb77fa18b44919fe012d159144e03e85",
                "source_body_bytes": 36596,
                "source_body_sha256": "f2481c51f99b7760d155849447693639184c316f316da7d05d2acf9167ef7d3d",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22073823/files/o017-d120-id-2026.08.24-reader-html.zip?download=1",
                "label": "Bahasa Indonesia — Download",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d120/D120.html",
                "label": "D120 · Kerja Matematika yang Dapat Ditelusuri",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 39505,
                "sha256": "7f39b9cc5d22a0fc36b30934a4eecc278df75e594efb8e5af78e0af8fae56520",
                "source_body_bytes": 37188,
                "source_body_sha256": "52bd7eeade830ae749260307968fda2dba3a4eadb8b4ad917e741baac718c5ba",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d120-en/D120.html",
                "label": "D120 · Traceable Mathematical Work in English",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 38257,
                "sha256": "1665ddc5822eafbae383460aa6fc9baf818d9767e13a0b64996e59e1352e649a",
                "source_body_bytes": 35932,
                "source_body_sha256": "66d4ff0f9e9b69a65d4792b8ab64ae421bdb9a0d81c35a596d926331bf1456fa",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d120-en/D120-educator.html",
                "label": "D120 · English educator map",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 24735,
                "sha256": "566d83dd1cdadd6487a3eae1d252596768608dcbbaaf54656bb031df5d4f271e",
                "source_body_bytes": 22428,
                "source_body_sha256": "1a88e2e053dd53a0df5d49d3ed92f9feacce035ce2f9a5533d4cb856739d2d31",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22073823",
                "label": "DOI archive — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/kerja-matematika-yang-dapat-ditelusuri-id",
                "label": "Source & repository — Bahasa Indonesia",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Shared modular index",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          },
          "id": {
            "course_id": "D120",
            "interface_locale": "id",
            "locale_route": "https://kokunoyumeto.github.io/program-matematika-indonesia/id/#course-D120",
            "program_hosted_reader": {
              "status": "available",
              "resources": [
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "original-work",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/id-ID/courses/D120/reader/",
                  "label": "Buka bahan belajar",
                  "label_language": "id",
                  "primary": true,
                  "offline_after_download": false,
                  "bytes": 38741,
                  "sha256": "8069ff963969bf29b50c38b4383e0387fb77fa18b44919fe012d159144e03e85",
                  "source_body_bytes": 36596,
                  "source_body_sha256": "f2481c51f99b7760d155849447693639184c316f316da7d05d2acf9167ef7d3d",
                  "hosted_navigation_overlay": "v1"
                },
                {
                  "access_role": "hosted-reader",
                  "authority_role": "program-edition",
                  "relation_to_source": "mirrors",
                  "content_language": "id",
                  "media_type": "reader",
                  "url": "https://kokunoyumeto.github.io/kerja-matematika-yang-dapat-ditelusuri-id/",
                  "label": "Pembaca HTML asli edisi D120",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "authoritative_original": {
              "status": "available",
              "resources": [
                {
                  "access_role": "authoritative-original",
                  "authority_role": "program-authority",
                  "relation_to_source": "source",
                  "content_language": "id",
                  "media_type": "HTML",
                  "url": "https://kokunoyumeto.github.io/kerja-matematika-yang-dapat-ditelusuri-id/",
                  "label": "Kerja Matematis yang Dapat Ditelusuri",
                  "label_language": "id",
                  "primary": false,
                  "offline_after_download": false,
                  "bytes": null,
                  "sha256": null,
                  "source_body_bytes": null,
                  "source_body_sha256": null,
                  "hosted_navigation_overlay": null
                }
              ]
            },
            "offline_copies": [
              {
                "access_role": "offline-copy",
                "authority_role": "program-edition",
                "relation_to_source": "offline-copy-of",
                "content_language": "id",
                "media_type": "edition",
                "url": "https://zenodo.org/records/22073823/files/o017-d120-id-2026.08.24-reader-html.zip?download=1",
                "label": "Unduh",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ],
            "alternatives": [
              {
                "access_role": "hosted-reader",
                "authority_role": "program-edition",
                "relation_to_source": "translation-of",
                "content_language": "en",
                "media_type": "HTML",
                "url": "https://kokunoyumeto.github.io/kerja-matematika-yang-dapat-ditelusuri-id/en/",
                "label": "Traceable Mathematical Work — complete English edition",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d120/D120.html",
                "label": "D120 · Kerja Matematika yang Dapat Ditelusuri",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": 39505,
                "sha256": "7f39b9cc5d22a0fc36b30934a4eecc278df75e594efb8e5af78e0af8fae56520",
                "source_body_bytes": 37188,
                "source_body_sha256": "52bd7eeade830ae749260307968fda2dba3a4eadb8b4ad917e741baac718c5ba",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d120-en/D120.html",
                "label": "D120 · Traceable Mathematical Work in English",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 38257,
                "sha256": "1665ddc5822eafbae383460aa6fc9baf818d9767e13a0b64996e59e1352e649a",
                "source_body_bytes": 35932,
                "source_body_sha256": "66d4ff0f9e9b69a65d4792b8ab64ae421bdb9a0d81c35a596d926331bf1456fa",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "tool",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "en",
                "media_type": "tool",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/d120-en/D120-educator.html",
                "label": "D120 · English educator map",
                "label_language": "en",
                "primary": false,
                "offline_after_download": false,
                "bytes": 24735,
                "sha256": "566d83dd1cdadd6487a3eae1d252596768608dcbbaaf54656bb031df5d4f271e",
                "source_body_bytes": 22428,
                "source_body_sha256": "1a88e2e053dd53a0df5d49d3ed92f9feacce035ce2f9a5533d4cb856739d2d31",
                "hosted_navigation_overlay": "v1"
              },
              {
                "access_role": "preservation-record",
                "authority_role": "program-edition",
                "relation_to_source": "preserves",
                "content_language": "id",
                "media_type": "archive",
                "url": "https://doi.org/10.5281/zenodo.22073823",
                "label": "Arsip DOI",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "repository",
                "authority_role": "program-edition",
                "relation_to_source": "supports",
                "content_language": "id",
                "media_type": "repository",
                "url": "https://github.com/KokunoYumeto/kerja-matematika-yang-dapat-ditelusuri-id",
                "label": "Sumber & repositori",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              },
              {
                "access_role": "backend",
                "authority_role": "program-edition",
                "relation_to_source": "indexes",
                "content_language": "und",
                "media_type": "backend",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/backend/index.html",
                "label": "Indeks modular bersama",
                "label_language": "id",
                "primary": false,
                "offline_after_download": false,
                "bytes": null,
                "sha256": null,
                "source_body_bytes": null,
                "source_body_sha256": null,
                "hosted_navigation_overlay": null
              }
            ]
          }
        },
        "capsule": {
          "id": "D120",
          "contract": "interlanguage/open-course-capsule/v1",
          "mapping_scope": "course_level_without_content_copy"
        },
        "native_unit_proof_mapping": "not_inferred_from_course_capsule",
        "native_source": "https://github.com/KokunoYumeto/kerja-matematika-yang-dapat-ditelusuri-id",
        "current_reading_resources": [],
        "current_human_reading_resources": []
      }
    ],
    "advanced": [
      {
        "id": "HA-LCA",
        "kind": "advanced",
        "title": {
          "en": "Harmonic analysis on locally compact abelian groups"
        },
        "summary": "Finite Fourier analysis leads to characters, the spectrum of the convolution algebra, positive-type functions, inversion and Plancherel, and Pontryagin duality. Later lessons develop annihilators and Poisson summation, structure theory, spectral representations, Wiener and Tauberian theorems, almost periodic functions, and Fourier analysis on totally disconnected groups.",
        "subject": "analysis-pde",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/",
        "status": "draft",
        "status_note": "Self-checked by GPT-6.1 Sol (OpenAI); independent AI review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently written lesson text and its original exercises and solutions.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "HA-LCA-01",
            "title": "Fourier analysis on finite abelian groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/fourier-analysis-on-finite-abelian-groups.md"
          },
          {
            "id": "HA-LCA-02",
            "title": "Characters and the dual group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/characters-and-the-dual-group.md"
          },
          {
            "id": "HA-LCA-03",
            "title": "The dual group as the Gelfand spectrum of L^1(G)",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/the-dual-group-as-the-gelfand-spectrum-of-l1-g.md"
          },
          {
            "id": "HA-LCA-04",
            "title": "Functions of positive type",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/functions-of-positive-type.md"
          },
          {
            "id": "HA-LCA-05",
            "title": "Raikov's theorem and the Gelfand–Raikov theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/raikovs-theorem-and-the-gelfand-raikov-theorem.md"
          },
          {
            "id": "HA-LCA-06",
            "title": "Bochner's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/bochners-theorem.md"
          },
          {
            "id": "HA-LCA-07",
            "title": "The Fourier inversion theorem and the dual Haar measure",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/the-fourier-inversion-theorem-and-the-dual-haar-measure.md"
          },
          {
            "id": "HA-LCA-08",
            "title": "The Plancherel theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/the-plancherel-theorem.md"
          },
          {
            "id": "HA-LCA-09",
            "title": "The Pontryagin duality theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/the-pontryagin-duality-theorem.md"
          },
          {
            "id": "HA-LCA-10",
            "title": "Subgroups, quotients and annihilators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/subgroups-quotients-and-annihilators.md"
          },
          {
            "id": "HA-LCA-11",
            "title": "The Poisson summation formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-11.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/the-poisson-summation-formula.md"
          },
          {
            "id": "HA-LCA-12",
            "title": "The structure of locally compact abelian groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/the-structure-of-locally-compact-abelian-groups.md"
          },
          {
            "id": "HA-LCA-13",
            "title": "Unitary representations of abelian groups: the spectral theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-13.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/unitary-representations-of-abelian-groups-the-spectral-theorem.md"
          },
          {
            "id": "HA-LCA-14",
            "title": "Closed ideals of L^1(G) and Wiener's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-14.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/closed-ideals-of-l1-g-and-wieners-theorem.md"
          },
          {
            "id": "HA-LCA-15",
            "title": "Tauberian theorems and spectral synthesis",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-15.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/tauberian-theorems-and-spectral-synthesis.md"
          },
          {
            "id": "HA-LCA-16",
            "title": "Almost periodic functions and the Bohr compactification",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-16.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/almost-periodic-functions-and-the-bohr-compactification.md"
          },
          {
            "id": "HA-LCA-17",
            "title": "Totally disconnected groups, the p-adic numbers and the adèles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/HA-LCA-17.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/HA-LCA/src/totally-disconnected-groups-the-p-adic-numbers-and-the-adeles.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NT-ANT",
        "kind": "advanced",
        "title": {
          "en": "Number fields"
        },
        "summary": "Algebraic integers, ideal factorization, ramification, geometry of numbers, units and class groups, quadratic and cyclotomic fields, and zeta and L-functions.",
        "subject": "number-theory",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI), in Codex at Ultra. Independent full-lesson AI review is pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored lesson text.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "algebraic-integers-and-rings-of-integers",
            "title": "Algebraic integers and rings of integers",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/algebraic-integers-and-rings-of-integers.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/algebraic-integers-and-rings-of-integers.md"
          },
          {
            "id": "discriminants-and-integral-bases",
            "title": "Discriminants and integral bases",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/discriminants-and-integral-bases.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/discriminants-and-integral-bases.md"
          },
          {
            "id": "discrete-valuation-rings-and-dedekind-domains",
            "title": "Discrete valuation rings and Dedekind domains",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/discrete-valuation-rings-and-dedekind-domains.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/discrete-valuation-rings-and-dedekind-domains.md"
          },
          {
            "id": "norms-class-groups-and-modules-over-dedekind-domains",
            "title": "Norms of ideals, the ideal class group, and modules over Dedekind domains",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/norms-class-groups-and-modules-over-dedekind-domains.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/norms-class-groups-and-modules-over-dedekind-domains.md"
          },
          {
            "id": "decomposition-of-primes-in-extensions",
            "title": "Decomposition of primes in extensions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/decomposition-of-primes-in-extensions.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/decomposition-of-primes-in-extensions.md"
          },
          {
            "id": "hilberts-ramification-theory-in-galois-extensions",
            "title": "Hilbert's ramification theory in Galois extensions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/hilberts-ramification-theory-in-galois-extensions.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/hilberts-ramification-theory-in-galois-extensions.md"
          },
          {
            "id": "lattices-minkowskis-theorem-and-the-minkowski-embedding",
            "title": "Lattices, Minkowski's theorem and the Minkowski embedding",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/lattices-minkowskis-theorem-and-the-minkowski-embedding.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/lattices-minkowskis-theorem-and-the-minkowski-embedding.md"
          },
          {
            "id": "finiteness-of-the-class-number",
            "title": "Finiteness of the class number",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/finiteness-of-the-class-number.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/finiteness-of-the-class-number.md"
          },
          {
            "id": "dirichlets-unit-theorem",
            "title": "Dirichlet's unit theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/dirichlets-unit-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/dirichlets-unit-theorem.md"
          },
          {
            "id": "quadratic-fields-ideal-classes-and-binary-quadratic-forms",
            "title": "Quadratic fields: ideal classes and binary quadratic forms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/quadratic-fields-ideal-classes-and-binary-quadratic-forms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/quadratic-fields-ideal-classes-and-binary-quadratic-forms.md"
          },
          {
            "id": "orders-in-number-fields-and-their-picard-groups",
            "title": "Orders in number fields and their Picard groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/orders-in-number-fields-and-their-picard-groups.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/orders-in-number-fields-and-their-picard-groups.md"
          },
          {
            "id": "cyclotomic-fields",
            "title": "Cyclotomic fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/cyclotomic-fields.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/cyclotomic-fields.md"
          },
          {
            "id": "units-and-class-numbers-of-cyclotomic-fields-kummers-theorem-for-regular-primes",
            "title": "Units and class numbers of cyclotomic fields; Kummer's theorem for regular primes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/units-and-class-numbers-of-cyclotomic-fields-kummers-theorem-for-regular-primes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/units-and-class-numbers-of-cyclotomic-fields-kummers-theorem-for-regular-primes.md"
          },
          {
            "id": "the-different-and-the-discriminant",
            "title": "The different and the discriminant",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/the-different-and-the-discriminant.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/the-different-and-the-discriminant.md"
          },
          {
            "id": "counting-ideals-of-bounded-norm",
            "title": "Counting ideals of bounded norm",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/counting-ideals-of-bounded-norm.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/counting-ideals-of-bounded-norm.md"
          },
          {
            "id": "the-dedekind-zeta-function-and-the-analytic-class-number-formula",
            "title": "The Dedekind zeta function and the analytic class number formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/the-dedekind-zeta-function-and-the-analytic-class-number-formula.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/the-dedekind-zeta-function-and-the-analytic-class-number-formula.md"
          },
          {
            "id": "abelian-number-fields-and-dirichlet-l-functions-at-s-1",
            "title": "Abelian number fields and Dirichlet L-functions at s = 1",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/abelian-number-fields-and-dirichlet-l-functions-at-s-1.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ANT/src/abelian-number-fields-and-dirichlet-l-functions-at-s-1.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AG-FSE",
        "kind": "advanced",
        "title": {
          "en": "Flat, smooth and étale morphisms"
        },
        "summary": "Flatness, local criteria and dimension; unramified, étale and smooth morphisms; infinitesimal lifting; henselization and étale localization.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/",
        "status": "draft",
        "status_note": "Self-checked by its author. Independent review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Independently authored course text and examples.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "flat-morphisms",
            "title": "Flat morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/flat-morphisms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/src/flat-morphisms.md"
          },
          {
            "id": "flatness-criteria",
            "title": "Flatness criteria, dimension and the flat locus",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/flatness-criteria.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/src/flatness-criteria.md"
          },
          {
            "id": "unramified-morphisms",
            "title": "Unramified morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/unramified-morphisms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/src/unramified-morphisms.md"
          },
          {
            "id": "etale-morphisms-and-their-local-structure",
            "title": "Étale morphisms and their local structure",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/etale-morphisms-and-their-local-structure.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/src/etale-morphisms-and-their-local-structure.md"
          },
          {
            "id": "smooth-morphisms",
            "title": "Smooth morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/smooth-morphisms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/src/smooth-morphisms.md"
          },
          {
            "id": "infinitesimal-lifting-and-invariance-under-thickenings",
            "title": "Infinitesimal lifting and the invariance of étale morphisms under thickenings",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/infinitesimal-lifting-and-invariance-under-thickenings.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/src/infinitesimal-lifting-and-invariance-under-thickenings.md"
          },
          {
            "id": "etale-neighbourhoods-henselization-and-quasi-finite-morphisms",
            "title": "Étale neighbourhoods, henselization and quasi-finite morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/etale-neighbourhoods-henselization-and-quasi-finite-morphisms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-FSE/src/etale-neighbourhoods-henselization-and-quasi-finite-morphisms.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "foundations-of-von-neumann-algebras",
        "kind": "advanced",
        "title": {
          "en": "Foundations of von Neumann algebras"
        },
        "summary": "The basic structure that the other operator-algebra courses build on. The first lessons prove the functional analysis and complex analysis it needs: the Hahn–Banach, Baire and open mapping theorems, weak topologies, Hilbert spaces and compact operators, Cauchy's theorem for cycles, and the spectral theorem. Then: Banach algebras and Gelfand theory, C*-algebras, their representations and AF-algebras, compact and trace-class operators and the operator topologies, the double commutant and Kaplansky density theorems, abelian von Neumann algebras, the universal enveloping von Neumann algebra and the polar decomposition of functionals, projections and types, completely positive maps, integral representations of states, and standard Borel spaces with co-Souslin sets.",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "hahn-banach-baire-and-the-basic-theorems-on-banach-spaces",
            "title": "Hahn–Banach, Baire and the basic theorems on Banach spaces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/hahn-banach-baire-and-the-basic-theorems-on-banach-spaces.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/hahn-banach-baire-and-the-basic-theorems-on-banach-spaces.md"
          },
          {
            "id": "weak-topologies-tychonoff-banach-alaoglu-mazur-bipolars-krein-milman-and-eberlein-smulian",
            "title": "Weak topologies: Tychonoff, Banach–Alaoglu, Mazur, bipolars, Krein–Milman and Eberlein–Šmulian",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/weak-topologies-tychonoff-banach-alaoglu-mazur-bipolars-krein-milman-and-eberlein-smulian.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/weak-topologies-tychonoff-banach-alaoglu-mazur-bipolars-krein-milman-and-eberlein-smulian.md"
          },
          {
            "id": "hilbert-spaces-and-compact-operators",
            "title": "Hilbert spaces and compact operators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/hilbert-spaces-and-compact-operators.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/hilbert-spaces-and-compact-operators.md"
          },
          {
            "id": "cauchy-s-theorem-for-cycles-and-its-consequences",
            "title": "Cauchy's theorem for cycles and its consequences",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/cauchy-s-theorem-for-cycles-and-its-consequences.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/cauchy-s-theorem-for-cycles-and-its-consequences.md"
          },
          {
            "id": "banach-algebras-spectrum-holomorphic-functional-calculus-and-gelfand-theory",
            "title": "Banach algebras, spectrum, holomorphic functional calculus and Gelfand theory",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/banach-algebras-spectrum-holomorphic-functional-calculus-and-gelfand-theory.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/banach-algebras-spectrum-holomorphic-functional-calculus-and-gelfand-theory.md"
          },
          {
            "id": "c-star-algebras-continuous-functional-calculus-automatic-continuity-positive-cones",
            "title": "C*-algebras: continuous functional calculus, automatic continuity, positive cones, approximate identities and quotients",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/c-star-algebras-continuous-functional-calculus-automatic-continuity-positive-cones.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/c-star-algebras-continuous-functional-calculus-automatic-continuity-positive-cones.md"
          },
          {
            "id": "the-spectral-theorem-for-bounded-self-adjoint-operators",
            "title": "The spectral theorem for bounded self-adjoint operators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/the-spectral-theorem-for-bounded-self-adjoint-operators.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/the-spectral-theorem-for-bounded-self-adjoint-operators.md"
          },
          {
            "id": "representations-and-positive-functionals-the-gns-construction-and-the-gelfand-naimark",
            "title": "Representations and positive functionals: the GNS construction and the Gelfand–Naimark theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/representations-and-positive-functionals-the-gns-construction-and-the-gelfand-naimark.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/representations-and-positive-functionals-the-gns-construction-and-the-gelfand-naimark.md"
          },
          {
            "id": "af-algebras",
            "title": "AF-algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/af-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/af-algebras.md"
          },
          {
            "id": "compact-and-trace-class-operators-the-predual-of-b-h-and-the-operator-topologies",
            "title": "Compact and trace-class operators, the predual of B(H), and the operator topologies",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/compact-and-trace-class-operators-the-predual-of-b-h-and-the-operator-topologies.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/compact-and-trace-class-operators-the-predual-of-b-h-and-the-operator-topologies.md"
          },
          {
            "id": "the-double-commutant-theorem",
            "title": "The double commutant theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/the-double-commutant-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/the-double-commutant-theorem.md"
          },
          {
            "id": "kaplansky-s-density-theorem-and-its-consequences",
            "title": "Kaplansky's density theorem and its consequences",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/kaplansky-s-density-theorem-and-its-consequences.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/kaplansky-s-density-theorem-and-its-consequences.md"
          },
          {
            "id": "abelian-operator-algebras",
            "title": "Abelian operator algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/abelian-operator-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/abelian-operator-algebras.md"
          },
          {
            "id": "the-universal-enveloping-von-neumann-algebra-of-a-c-star-algebra-and-w-star-algebras",
            "title": "The universal enveloping von Neumann algebra of a C*-algebra, and W*-algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/the-universal-enveloping-von-neumann-algebra-of-a-c-star-algebra-and-w-star-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/the-universal-enveloping-von-neumann-algebra-of-a-c-star-algebra-and-w-star-algebras.md"
          },
          {
            "id": "projections-and-types-of-von-neumann-algebras",
            "title": "Projections and types of von Neumann algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/projections-and-types-of-von-neumann-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/projections-and-types-of-von-neumann-algebras.md"
          },
          {
            "id": "polar-decomposition-of-functionals-and-weak-compactness-in-preduals",
            "title": "Polar decomposition of functionals and weak compactness in preduals",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/polar-decomposition-of-functionals-and-weak-compactness-in-preduals.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/polar-decomposition-of-functionals-and-weak-compactness-in-preduals.md"
          },
          {
            "id": "completely-positive-maps",
            "title": "Completely positive maps",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/completely-positive-maps.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/completely-positive-maps.md"
          },
          {
            "id": "integral-representations-of-states",
            "title": "Integral representations of states",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/integral-representations-of-states.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/integral-representations-of-states.md"
          },
          {
            "id": "polish-spaces-and-standard-borel-spaces",
            "title": "Polish spaces and standard Borel spaces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/polish-spaces-and-standard-borel-spaces.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/polish-spaces-and-standard-borel-spaces.md"
          },
          {
            "id": "numerical-ranges-positive-matrices-and-co-souslin-sets",
            "title": "Numerical ranges, positive matrices and co-Souslin sets",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/numerical-ranges-positive-matrices-and-co-souslin-sets.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/foundations-of-von-neumann-algebras/src/numerical-ranges-positive-matrices-and-co-souslin-sets.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "measurable-fields-and-direct-integrals",
        "kind": "advanced",
        "title": {
          "en": "Measurable fields and direct integrals"
        },
        "summary": "Fields of Hilbert spaces whose dimension may vary from point to point, their direct integrals, decomposable operators, vector-valued integration and preduals, the Borel structure on subspaces and von Neumann algebras, and direct integrals of von Neumann algebras with their commutants and centres.",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/measurable-fields-and-direct-integrals/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "measurable-fields-of-hilbert-spaces-and-their-direct-integrals",
            "title": "Measurable fields of Hilbert spaces and their direct integrals",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/measurable-fields-and-direct-integrals/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/measurable-fields-and-direct-integrals/"
          },
          {
            "id": "decomposable-operators-and-the-diagonal-algebra",
            "title": "Decomposable operators and the diagonal algebra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/measurable-fields-and-direct-integrals/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/measurable-fields-and-direct-integrals/"
          },
          {
            "id": "vector-valued-functions-tensor-products-with-lp-and-preduals",
            "title": "Vector-valued functions, tensor products with L^p, and preduals",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/measurable-fields-and-direct-integrals/vector-valued-functions-tensor-products-with-lp-and-preduals.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/measurable-fields-and-direct-integrals/src/vector-valued-functions-tensor-products-with-lp-and-preduals.md"
          },
          {
            "id": "the-effros-borel-structure",
            "title": "The Effros Borel structure",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/measurable-fields-and-direct-integrals/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/measurable-fields-and-direct-integrals/"
          },
          {
            "id": "direct-integrals-of-von-neumann-algebras",
            "title": "Direct integrals of von Neumann algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/measurable-fields-and-direct-integrals/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/measurable-fields-and-direct-integrals/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "tensor-products-of-operator-algebras",
        "kind": "advanced",
        "title": {
          "en": "Tensor products of operator algebras"
        },
        "summary": "Spatial tensor products of von Neumann algebras on Hilbert spaces of any dimension: normal functionals, slice maps, the commutation theorem and coproducts. Tensor products of Banach and Hilbert spaces with the injective and projective norms, trace duality, and Jordan homomorphisms and isometries of C*-algebras.",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/tensor-products-of-operator-algebras/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "spatial-tensor-products-of-von-neumann-algebras",
            "title": "Spatial tensor products of von Neumann algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/tensor-products-of-operator-algebras/spatial-tensor-products-of-von-neumann-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/tensor-products-of-operator-algebras/src/spatial-tensor-products-of-von-neumann-algebras.md"
          },
          {
            "id": "tensor-products-of-banach-and-hilbert-spaces-jordan-homomorphisms-and-isometries-of-c-star",
            "title": "Tensor products of Banach and Hilbert spaces, Jordan homomorphisms and isometries of C*-algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/tensor-products-of-operator-algebras/tensor-products-of-banach-and-hilbert-spaces-jordan-homomorphisms-and-isometries-of-c-star.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/tensor-products-of-operator-algebras/src/tensor-products-of-banach-and-hilbert-spaces-jordan-homomorphisms-and-isometries-of-c-star.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "OA-MOD",
        "kind": "advanced",
        "title": {
          "en": "Modular theory and weights"
        },
        "summary": "General weights on von Neumann algebras: their integration and comparison, modular symmetry, standard forms, spatial derivatives, correspondences and conditional expectations.",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/",
        "status": "draft",
        "status_note": "Course draft in progress; C*-foundation imports now identify their existing programme owners.",
        "authorship": "GPT-6 Astra and GPT-6 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The original lesson text and drawings written for this course.",
          "exceptions": [
            "Rendered font glyphs in the figure keep their font licences (see the notices)."
          ]
        },
        "lessons": [
          {
            "id": "OA-MOD-CUR",
            "title": "Curriculum and full result contracts",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CUR.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-WG",
            "title": "Finite domains and representations of general weights",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-WG.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-WF",
            "title": "Weights and semicyclic representations: the exact opening package",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-WF.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-DW",
            "title": "Comparing weights through finite-energy vectors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-DW.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-BK",
            "title": "A bounded-operator kernel for weight arguments",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-BK.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-NW",
            "title": "Detecting normal weights by finite observations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-NW.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-WS",
            "title": "Finite domains, null directions, and support corners",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-WS.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-CP",
            "title": "Concrete preduals from Hilbert tensors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CP.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-PV",
            "title": "The predual-valued map of a normal weight",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-PV.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-BA",
            "title": "Countable amplification and ultraweak bicommutant closure",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-BA.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-NP",
            "title": "Normal positive maps and their preadjoints",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-NP.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-GV",
            "title": "The vector retained by a comparison map",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-GV.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-OW",
            "title": "A faithful weight on the GNS commutant",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-OW.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-SK",
            "title": "Spectral calculus with its domains retained",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-SK.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-QF",
            "title": "Recovering operators from energy forms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-QF.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-FC",
            "title": "Closing energy domains and comparing resolvents",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-FC.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-CI",
            "title": "Compatible pairs and complex interpolation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CI.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-TC",
            "title": "Closing an involution and recovering its modular data",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-TC.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-HA",
            "title": "Building the two multiplication actions of a Hilbert algebra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-HA.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-HG",
            "title": "Haar convolution as left and right Hilbert algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-HG.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-BC",
            "title": "Polynomial cutoffs recover an operator's range",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-BC.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-RD",
            "title": "Right Hilbert algebra density and commutants",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-RD.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-FL",
            "title": "The full left Hilbert algebra obtained by dualizing twice",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-FL.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-WH",
            "title": "Weights and the Hilbert spaces of multiplication",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-WH.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-WT",
            "title": "Changing algebra coordinates and scaling a weight",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-WT.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-MA",
            "title": "Analytic kernels for unbounded modular operators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-MA.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-HAP",
            "title": "Approximating multiplication without losing its bound",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-HAP.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-MF",
            "title": "The modular group and its analytic algebra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-MF.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-SF",
            "title": "The positive cone of a standard representation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-SF.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-SE",
            "title": "Recovering a representation from its positive cone",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-SE.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-CE",
            "title": "Contractive retractions and conditional expectations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CE.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-SD",
            "title": "Spatial comparison on an arbitrary representation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-SD.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-SC",
            "title": "Constructing spatial energy from finite observations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-SC.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-SS",
            "title": "Adding spatial energies and changing the reference weight",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-SS.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-SI",
            "title": "Spatial energy and modular time",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-SI.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-KM",
            "title": "The KMS boundary condition determines the modular group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-KM.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-MT",
            "title": "Operators recovered from small trace defects",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-MT.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-CX",
            "title": "Reconstructing a weight from a modular cocycle",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CX.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-SX",
            "title": "Recovering a weight from spatial energy",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-SX.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-CZ",
            "title": "Fixed elements and changes of density",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CZ.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-TI",
            "title": "Trace densities and noncommutative integration",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-TI.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-TA",
            "title": "Tracial multiplication actions and the preserving expectation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-TA.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-SL",
            "title": "Spectral layers in a semifinite trace algebra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-SL.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-CH",
            "title": "Changing the reference of a weight cocycle",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CH.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-UZ",
            "title": "Forced C*-unitization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-UZ.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-CS",
            "title": "Finite weight domains and GNS",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CS.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-BG",
            "title": "Bounded functionals and cyclic vectors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-BG.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-ST",
            "title": "States and the positive spanning family",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-ST.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-AB",
            "title": "Weak compactness and second adjoints",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-AB.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-SG",
            "title": "Banach holomorphy, generators, and resolvent limits",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-SG.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-TE",
            "title": "Finite corners, faithful traces, and affine group fixed points",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-TE.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-UB",
            "title": "The universal C*-bidual",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-UB.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-LW",
            "title": "Lower semicontinuous C*-weights",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-LW.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-KL",
            "title": "From a C*-modular condition to the GNS von Neumann algebra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-KL.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-GC",
            "title": "Supported GNS representations and the balanced cocycle",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-GC.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-ACI",
            "title": "Countable modular sums and infinite-weight boundaries",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-ACI.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-NC",
            "title": "Joint spectral measures and commutator estimates in standard form",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-NC.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-DF",
            "title": "Measurable Hilbert fields and their diagonal commutant",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-DF.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-DC",
            "title": "Central decomposition from countable operator equations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-DC.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-PF",
            "title": "Regular representations, Fourier algebras, and Borel group measures",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-PF.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-CO",
            "title": "Compatible traces and the coupling operator",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CO.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-CL",
            "title": "Canonical L2 and standard implementations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CL.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-FUS",
            "title": "Relative tensor products and fusion",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-FUS.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-TG",
            "title": "Tensor operators and tensor weights",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-TG.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-ME",
            "title": "Conditional expectations from modular invariance",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-ME.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-CW",
            "title": "Corner weights tested on all positive energies",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CW.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-PT",
            "title": "Recognizing invariant weights by their densities",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-PT.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-VR",
            "title": "Inner modular flow and rigidity of finite weight data",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-VR.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-HS",
            "title": "Weight domination and exact half-strip endpoints",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-HS.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-AG",
            "title": "Analytic generators and exact finite weight domains",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-AG.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-VE",
            "title": "Commuting modular flows and relative half-strip multipliers",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-VE.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-CM",
            "title": "Central cocycles and common finite domains",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CM.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-NF",
            "title": "Normal-functional polar decomposition and invariant pairs",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-NF.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-FT",
            "title": "Ergodic factors and trace normalization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-FT.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-MB",
            "title": "Semifinite corners and bounded modular operators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-MB.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-MP",
            "title": "Modular partitions and the full finite domain",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-MP.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-OC",
            "title": "Compact-time continuity along automorphism orbits",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-OC.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-RC",
            "title": "Norm continuity of relative modular time",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-RC.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-PL",
            "title": "A supported inverse weight cocycle",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-PL.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-PC",
            "title": "Partial cocycles and their exact mixed KMS domains",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-PC.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-WC",
            "title": "Comparing supported weights and transporting their cuts",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-WC.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-UW",
            "title": "Uniform geometry of faithful weights",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-UW.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-CA",
            "title": "When countable sums detect extended positive energy",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-CA.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-OVW",
            "title": "Finite calculus and composition of operator-valued weights",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-OVW.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-OR",
            "title": "Detecting and determining operator-valued weights",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-OR.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-OM",
            "title": "Modular invariants of operator-valued weights",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-OM.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-OE",
            "title": "Compatible modular weights and operator-valued reconstruction",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-OE.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-HL",
            "title": "Homogeneous operators in the continuous core",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-HL.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-OD",
            "title": "Commutant duality for operator-valued weights",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-OD.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-IXE",
            "title": "Six laboratories on expectations and operator-valued averages",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-IXE.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-GFR",
            "title": "Compatible measurable GNS fields and both representation transports",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-GFR.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-MW",
            "title": "Measurable weight fields and their integrals",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-MW.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-WD",
            "title": "Separable GNS spaces and disintegration of C*-weights",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-WD.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-MC",
            "title": "The realization boundary in measurable weight fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-MC.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-SCF",
            "title": "Measurable algebra cores and exact selection",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-SCF.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          },
          {
            "id": "OA-MOD-DI",
            "title": "Direct integrals of Hilbert and Tomita algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/OA-MOD-DI.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-MOD/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "hilbert-algebras",
        "kind": "advanced",
        "title": {
          "en": "Hilbert algebras"
        },
        "summary": "Left and right Hilbert algebras: commutative examples, the group algebra of a locally compact group, finite-rank examples, equivalence of Hilbert algebras, and fully solved exercises.",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-algebras/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "left-and-right-hilbert-algebras",
            "title": "Left and right Hilbert algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-algebras/left-and-right-hilbert-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-algebras/src/left-and-right-hilbert-algebras.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "analytic-elements-strips-and-kms",
        "kind": "advanced",
        "title": {
          "en": "Analytic elements, strips and KMS"
        },
        "summary": "Holomorphy in Banach spaces, one-parameter groups and their generators (Stone's theorem, cores, analytic vectors, convergence in the strong resolvent sense), holomorphic extension of one-parameter groups, analytic and entire elements, conjugate-linear closed operators, and the strip arguments behind the KMS condition.",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/analytic-elements-strips-and-kms/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "holomorphy-in-banach-spaces-stone-s-theorem-and-resolvent-convergence",
            "title": "Holomorphy in Banach spaces, Stone's theorem and resolvent convergence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/analytic-elements-strips-and-kms/holomorphy-in-banach-spaces-stone-s-theorem-and-resolvent-convergence.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/analytic-elements-strips-and-kms/src/holomorphy-in-banach-spaces-stone-s-theorem-and-resolvent-convergence.md"
          },
          {
            "id": "analytic-elements-and-strip-arguments",
            "title": "Analytic elements and strip arguments",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/analytic-elements-strips-and-kms/analytic-elements-and-strip-arguments.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/analytic-elements-strips-and-kms/src/analytic-elements-and-strip-arguments.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "traces-and-noncommutative-integration",
        "kind": "advanced",
        "title": {
          "en": "Traces and noncommutative integration"
        },
        "summary": "Traces on von Neumann algebras, from finite and semifinite traces to the center-valued trace; integration for a trace, the commutation theorem and the extended center-valued trace; operators measurable with respect to a trace: examples, convergence in measure and nearly everywhere, and the commutant of left multiplication; and the multiplicity of a representation, measured by the coupling function.",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/traces-and-noncommutative-integration/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "traces-on-von-neumann-algebras",
            "title": "Traces on von Neumann algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/traces-and-noncommutative-integration/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/traces-and-noncommutative-integration/"
          },
          {
            "id": "integration-for-a-trace-the-commutation-theorem-and-applications",
            "title": "Integration for a trace, the commutation theorem, and applications",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/traces-and-noncommutative-integration/integration-for-a-trace-the-commutation-theorem-and-applications.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/traces-and-noncommutative-integration/src/integration-for-a-trace-the-commutation-theorem-and-applications.md"
          },
          {
            "id": "measurable-operators-for-a-trace-examples-convergence-and-the-commutant",
            "title": "Measurable operators for a trace: examples, convergence and the commutant",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/traces-and-noncommutative-integration/measurable-operators-for-a-trace-examples-convergence-and-the-commutant.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/traces-and-noncommutative-integration/src/measurable-operators-for-a-trace-examples-convergence-and-the-commutant.md"
          },
          {
            "id": "multiplicity-of-a-von-neumann-algebra-on-a-hilbert-space",
            "title": "Multiplicity of a von Neumann algebra on a Hilbert space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/traces-and-noncommutative-integration/multiplicity-of-a-von-neumann-algebra-on-a-hilbert-space.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/traces-and-noncommutative-integration/src/multiplicity-of-a-von-neumann-algebra-on-a-hilbert-space.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "OA-FLOW",
        "kind": "advanced",
        "title": {
          "en": "Crossed products and the flow of weights"
        },
        "summary": "Dynamics of operator algebras: crossed products, duality, action cocycles, continuous cores and the flow of weights.",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
        "status": "draft",
        "status_note": "Self-checked by its authors.",
        "authorship": "GPT-6 Astra and GPT-6 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text and the drawings in its figures, written for this course.",
          "exceptions": [
            "Rendered font glyphs in the figures keep their font licences (DejaVu, STIX and BaKoMa; see the notices)."
          ]
        },
        "lessons": [
          {
            "id": "OA-FLOW-L01",
            "title": "Entry contracts and mathematical conventions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L02",
            "title": "Transporting crossed products through action cocycles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L03",
            "title": "Two crossed products and the surviving action",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L04",
            "title": "Building an intrinsic flow from modular coordinates",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L05",
            "title": "Central cocycles as obstructions to fixed implementers",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L06",
            "title": "Kernels, local fixed parts, and freeness",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L07",
            "title": "Closing a domain after spectral localization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L08",
            "title": "Integrating covariance with left Haar measure",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L09",
            "title": "A coefficient domain for the dual GNS construction",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L10",
            "title": "Moving an action and a modular parameter together",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L11",
            "title": "Continuity of actions: scalar tests, preduals, and bounded nets",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L12",
            "title": "Modular time on a crossed-product coefficient algebra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L13",
            "title": "Extending the dual weight beyond the common involution domain",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L14",
            "title": "How the dual weight moves crossed-product generators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L15",
            "title": "Changing the Hilbert space of a regular crossed product",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L16",
            "title": "Recovering multiplicity from a Weyl system",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L17",
            "title": "Locating frequencies with Fourier filters",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L18",
            "title": "Detecting semifinite corners through central translation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/OA-FLOW-L18.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L19",
            "title": "Recovering a spectral coordinate from a scaled trace",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/OA-FLOW-L19.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L20",
            "title": "Comparing dual weights through matrix corners",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L21",
            "title": "The coefficient algebra as the value space of a weight",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L22",
            "title": "Averaging a dual action and recovering its coefficients",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L23",
            "title": "Commuting with the original algebra inside its core",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L24",
            "title": "Recovering a group action from its integrated operators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/OA-FLOW-L24.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/src/24-group-representation-completions.md"
          },
          {
            "id": "OA-FLOW-L25",
            "title": "Recovering covariance with nonunital coefficients",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/OA-FLOW-L25.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/src/25-cstar-covariant-representations.md"
          },
          {
            "id": "OA-FLOW-L26",
            "title": "Realizing central cocycles by spectral averaging",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L27",
            "title": "Recovering a weight from dual invariance",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L28",
            "title": "Removing noncentral cocycles from a trace-scaling action",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L29",
            "title": "Recovering a crossed product from its eigenunitaries",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/OA-FLOW-L29.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L30",
            "title": "Recognizing the continuous core of a fixed algebra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L31",
            "title": "Haar coordinates and integration after recognition",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/OA-FLOW-L31.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L32",
            "title": "Dual weights and their supports",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/OA-FLOW-L32.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L33",
            "title": "The weight after crossing twice",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/OA-FLOW-L33.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L34",
            "title": "Derivatives of actions: domains, perturbations, and implementation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/OA-FLOW-L34.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          },
          {
            "id": "OA-FLOW-L35",
            "title": "Innerness and spectral tails",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/OA-FLOW-L35.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/OA-FLOW/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "type-iii-factors",
        "kind": "advanced",
        "title": {
          "en": "Type III factors: central sequences, full factors and almost periodic states"
        },
        "summary": "This course studies factors of type III through bounded sequences that asymptotically commute with the whole algebra and its normal states. It shows that a factor with separable predual is full, meaning that its inner automorphisms form a closed subgroup, exactly when all such sequences are trivial; it builds the invariants Sd and τ from almost periodic weights and the modular group; and it constructs full factors of type III₁ that have no almost periodic weight and are not crossed products of a semifinite algebra by a discrete abelian group. Basic references are [Connes 1974], [Connes 1973], [Connes 1976] and [Takesaki II].",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/type-iii-factors/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "ultraproducts-and-the-asymptotic-centralizer",
            "title": "Ultraproducts and the asymptotic centralizer",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/type-iii-factors/ultraproducts-and-the-asymptotic-centralizer.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/type-iii-factors/src/ultraproducts-and-the-asymptotic-centralizer.md"
          },
          {
            "id": "full-factors",
            "title": "Full factors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/type-iii-factors/full-factors.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/type-iii-factors/src/full-factors.md"
          },
          {
            "id": "almost-periodic-weights-and-the-invariant-sd",
            "title": "Almost periodic weights and the invariant Sd",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/type-iii-factors/almost-periodic-weights-and-the-invariant-sd.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/type-iii-factors/src/almost-periodic-weights-and-the-invariant-sd.md"
          },
          {
            "id": "full-factors-without-almost-periodic-weights",
            "title": "Full factors without almost periodic weights",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/type-iii-factors/full-factors-without-almost-periodic-weights.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/type-iii-factors/src/full-factors-without-almost-periodic-weights.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "injective-factors",
        "kind": "advanced",
        "title": {
          "en": "Injective factors"
        },
        "summary": "This course classifies the injective factors with separable predual that are not of type III₁: the hyperfinite factor is the only injective factor of type II₁, there is only one of type II∞ and one of each type IIIλ with 0 < λ < 1, and the injective factors of type III₀ are the Krieger factors, classified by their flow of weights. It also shows that injectivity, approximate finite dimensionality, semidiscreteness and property P coincide for factors with separable predual (for type III₁ with the help of a later uniqueness theorem, used without proof), building on trace inequalities, property Γ and approximately inner and centrally trivial automorphisms. Basic references are [Connes 1976], [Connes 1973], [Takesaki III], [Brown–Ozawa] and [Connes 1994].",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "trace-inequalities-for-finite-von-neumann-algebras",
            "title": "Trace inequalities for finite von Neumann algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/trace-inequalities-for-finite-von-neumann-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/src/trace-inequalities-for-finite-von-neumann-algebras.md"
          },
          {
            "id": "property-gamma-and-the-algebra-generated-by-a-factor-and-its-commutant",
            "title": "Property Γ and the algebra generated by a factor and its commutant",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/property-gamma-and-the-algebra-generated-by-a-factor-and-its-commutant.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/src/property-gamma-and-the-algebra-generated-by-a-factor-and-its-commutant.md"
          },
          {
            "id": "approximately-inner-and-centrally-trivial-automorphisms",
            "title": "Approximately inner and centrally trivial automorphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/approximately-inner-and-centrally-trivial-automorphisms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/src/approximately-inner-and-centrally-trivial-automorphisms.md"
          },
          {
            "id": "injective-von-neumann-algebras",
            "title": "Injective von Neumann algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/injective-von-neumann-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/src/injective-von-neumann-algebras.md"
          },
          {
            "id": "uniqueness-of-the-injective-ii1-factor",
            "title": "Uniqueness of the injective II₁ factor",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/uniqueness-of-the-injective-ii1-factor.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/src/uniqueness-of-the-injective-ii1-factor.md"
          },
          {
            "id": "classification-of-injective-factors",
            "title": "Classification of injective factors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/classification-of-injective-factors.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/injective-factors/src/classification-of-injective-factors.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "entropy-of-automorphisms",
        "kind": "advanced",
        "title": {
          "en": "Entropy of automorphisms"
        },
        "summary": "These lessons define an entropy for automorphisms of operator algebras, the noncommutative counterpart of the Kolmogorov–Sinai entropy of ergodic theory. They start with automorphisms that preserve a trace, where the entropy tells apart the shifts of the hyperfinite II₁ factor built from matrices of different sizes, then treat automorphisms that preserve a state on a C*-algebra or a von Neumann algebra, and end with the entropy of lattice translations in quantum spin chains. Basic references are [Connes–Størmer 1975], [Connes–Narnhofer–Thirring 1987], [Neshveyev–Størmer 2006] and [Ohya–Petz 1993].",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/entropy-of-automorphisms/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "entropy-of-finite-dimensional-subalgebras",
            "title": "Entropy of finite-dimensional subalgebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/entropy-of-automorphisms/entropy-of-finite-dimensional-subalgebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/entropy-of-automorphisms/src/entropy-of-finite-dimensional-subalgebras.md"
          },
          {
            "id": "the-entropy-of-a-trace-preserving-automorphism",
            "title": "The entropy of a trace-preserving automorphism",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/entropy-of-automorphisms/the-entropy-of-a-trace-preserving-automorphism.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/entropy-of-automorphisms/src/the-entropy-of-a-trace-preserving-automorphism.md"
          },
          {
            "id": "entropy-defect-and-abelian-models",
            "title": "Entropy defect and abelian models",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/entropy-of-automorphisms/entropy-defect-and-abelian-models.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/entropy-of-automorphisms/src/entropy-defect-and-abelian-models.md"
          },
          {
            "id": "dynamical-entropy-of-c-star-algebras-and-von-neumann-algebras",
            "title": "Dynamical entropy of C*-algebras and von Neumann algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/entropy-of-automorphisms/dynamical-entropy-of-c-star-algebras-and-von-neumann-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/entropy-of-automorphisms/src/dynamical-entropy-of-c-star-algebras-and-von-neumann-algebras.md"
          },
          {
            "id": "entropy-of-lattice-translations-in-quantum-spin-chains",
            "title": "Entropy of lattice translations in quantum spin chains",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/entropy-of-automorphisms/entropy-of-lattice-translations-in-quantum-spin-chains.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/entropy-of-automorphisms/src/entropy-of-lattice-translations-in-quantum-spin-chains.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "noncommutative-integration",
        "kind": "advanced",
        "title": {
          "en": "Noncommutative integration and spatial theory"
        },
        "summary": "This course develops integration on spaces that ordinary measure theory cannot see, such as the space of orbits of an ergodic group action or the leaf space of a foliation. It starts with the spatial derivative, which compares a weight on a von Neumann algebra with a weight on its commutant, and then builds transverse measures on measured groupoids, the von Neumann algebra of random operators, and the weights, formal dimension and index that come with them. Basic references are [Connes 1979], [Connes 1980a], [Connes 1982] and [Connes 1994].",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/noncommutative-integration/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "the-spatial-derivative",
            "title": "The spatial derivative",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/noncommutative-integration/the-spatial-derivative.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/noncommutative-integration/src/the-spatial-derivative.md"
          },
          {
            "id": "measured-groupoids-and-transverse-measures",
            "title": "Measured groupoids and transverse measures",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/noncommutative-integration/measured-groupoids-and-transverse-measures.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/noncommutative-integration/src/measured-groupoids-and-transverse-measures.md"
          },
          {
            "id": "square-integrable-representations-and-random-operators",
            "title": "Square-integrable representations and random operators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/noncommutative-integration/square-integrable-representations-and-random-operators.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/noncommutative-integration/src/square-integrable-representations-and-random-operators.md"
          },
          {
            "id": "weights-on-random-operators-and-formal-dimension",
            "title": "Weights on random operators and formal dimension",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/noncommutative-integration/weights-on-random-operators-and-formal-dimension.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/noncommutative-integration/src/weights-on-random-operators-and-formal-dimension.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NCG-CYCLIC",
        "kind": "advanced",
        "title": {
          "en": "Cyclic cohomology, connections and transverse geometry"
        },
        "summary": "Traces and cyclic cohomology, connections and Chern forms on modules over an algebra with a group action, a pseudodifferential calculus for actions of Euclidean space, cyclic forms that extend to norm completions, and the fundamental class of an action on a manifold.",
        "subject": "noncommutative-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-CYCLIC/",
        "status": "draft",
        "status_note": "Self-checked by its author, GPT-6.1 Sol; spot-checked by GPT-6 Astra.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "NCGCY-L01",
            "title": "Cyclic cohomology: traces, differentials and symmetry",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-CYCLIC/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-CYCLIC/"
          },
          {
            "id": "NCGCY-L02",
            "title": "Connections and curvature from symmetries of an algebra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-CYCLIC/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-CYCLIC/"
          },
          {
            "id": "NCGCY-L03",
            "title": "Frequency calculus for an action of Euclidean space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-CYCLIC/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-CYCLIC/"
          },
          {
            "id": "NCGCY-L04",
            "title": "Cyclic forms that survive norm completion",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-CYCLIC/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-CYCLIC/"
          },
          {
            "id": "NCGCY-L05",
            "title": "A fundamental class for an action on a manifold",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-CYCLIC/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-CYCLIC/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NCG-LOCAL-INDEX",
        "kind": "advanced",
        "title": {
          "en": "Spectral triples and the local index formula"
        },
        "summary": "Logarithmic traces of operators, regular spectral triples and their dimension spectrum, the residue cocycle and the local index formula, and the hypoelliptic calculus for the transverse geometry of diffeomorphisms.",
        "subject": "noncommutative-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-LOCAL-INDEX/",
        "status": "draft",
        "status_note": "Written and self-checked by GPT-6.1 Sol (OpenAI) at Ultra.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "NCGLI-L01",
            "title": "Singular values and the Dixmier trace",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-LOCAL-INDEX/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-LOCAL-INDEX/src/singular-values-and-the-dixmier-trace.md"
          },
          {
            "id": "NCGLI-L02",
            "title": "Spectral triples and dimension spectrum",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-LOCAL-INDEX/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-LOCAL-INDEX/src/spectral-triples-and-dimension-spectrum.md"
          },
          {
            "id": "NCGLI-L03",
            "title": "The local index formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-LOCAL-INDEX/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-LOCAL-INDEX/src/the-local-index-formula.md"
          },
          {
            "id": "NCGLI-L04",
            "title": "Symbol calculus, transverse geometry and geometric index formulas",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-LOCAL-INDEX/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NCG-LOCAL-INDEX/src/hypoelliptic-calculus-and-the-transverse-geometry-of-diffeomorphisms.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "function-algebras-and-approximation",
        "kind": "advanced",
        "title": {
          "en": "Function algebras and approximation"
        },
        "summary": "The Stone–Weierstrass theorem for continuous functions vanishing at infinity, with the topology of locally compact spaces and the classical approximation theorems around it.",
        "subject": "analysis-pde",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/function-algebras-and-approximation/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "the-stone-weierstrass-theorem-for-functions-vanishing-at-infinity",
            "title": "The Stone–Weierstrass theorem for functions vanishing at infinity",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/function-algebras-and-approximation/the-stone-weierstrass-theorem-for-functions-vanishing-at-infinity.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/function-algebras-and-approximation/src/the-stone-weierstrass-theorem-for-functions-vanishing-at-infinity.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "harmonic-analysis-on-locally-compact-groups",
        "kind": "advanced",
        "title": {
          "en": "Harmonic analysis on locally compact groups"
        },
        "summary": "Haar and Riesz representation for arbitrary locally compact groups; measure and Hilbert prerequisites; invariant and quasi-invariant quotient integration; finite-covolume modular and rational adelic examples.",
        "subject": "analysis-pde",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/harmonic-analysis-on-locally-compact-groups/reader/",
        "status": "draft",
        "status_note": "Self-checked by GPT-6.1 Sol (OpenAI), Ultra. Independent full-course AI review remains separate; no human review is claimed.",
        "authorship": "GPT-6.1 Sol (OpenAI), Ultra; retained earlier text credited in the lessons",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original exposition and exercises in the four lessons, including retained CC0 programme text.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "measure-and-hilbert-space-tools",
            "title": "Measure and Hilbert space tools for Haar integration",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/harmonic-analysis-on-locally-compact-groups/reader/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/harmonic-analysis-on-locally-compact-groups/src/measure-and-hilbert-space-tools.md"
          },
          {
            "id": "haar-measure-on-locally-compact-groups",
            "title": "Haar measure on locally compact groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/harmonic-analysis-on-locally-compact-groups/reader/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/harmonic-analysis-on-locally-compact-groups/src/haar-measure-on-locally-compact-groups.md"
          },
          {
            "id": "quotient-measures-and-weils-integration-formula",
            "title": "Quotient measures and Weil's integration formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/harmonic-analysis-on-locally-compact-groups/reader/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/harmonic-analysis-on-locally-compact-groups/src/quotient-measures-and-weils-integration-formula.md"
          },
          {
            "id": "finite-covolume-and-arithmetic-quotients",
            "title": "Finite covolume and arithmetic quotients",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/harmonic-analysis-on-locally-compact-groups/reader/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/harmonic-analysis-on-locally-compact-groups/src/finite-covolume-and-arithmetic-quotients.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": [
          {
            "course_id": "harmonic-analysis-on-locally-compact-groups",
            "slug": "haar-measure-and-quotient-integration",
            "title": "Haar measure and quotient integration",
            "content_language": "en",
            "notes": {
              "en": "English companion: four lessons, seven prerequisite chapters and one supplementary proof, 140 PDF pages. Includes PDF, direct cumulative LaTeX, complete source ZIP and EPUB, with 215 named locations. Source version 4052a2ff41ac; source authorship and mixed CC0/Design Science License retained. This is not the complete harmonic-analysis course or a new mathematical review.",
              "id": "Buku pendamping berbahasa Inggris: empat pelajaran, tujuh bab prasyarat dan satu bukti tambahan, 140 halaman PDF. Tersedia PDF, LaTeX kumulatif langsung, ZIP sumber lengkap dan EPUB, dengan 215 lokasi berlabel. Versi sumber 4052a2ff41ac; atribusi asli serta lisensi CC0 dan Design Science License dipertahankan sesuai komponennya. Bukan mata kuliah analisis harmonik lengkap atau penelaahan matematika baru."
            },
            "coverage": "Includes all four lessons, all seven bundled prerequisite chapters and the Fremlin-derived supplementary proof. It is not the complete harmonic-analysis course, and further reading listed by the source remains outside this companion.",
            "edition": {
              "path": "docs/editions/haar-measure-and-quotient-integration/EDITION.json",
              "bytes": 3608,
              "sha256": "61d6bdd31aff7bfc135b15630ee5b2fa23253c3b994f48c3d98b17ea84c50d83"
            },
            "source": {
              "repository": "https://github.com/KokunoYumeto/open-math-courses",
              "commit": "4052a2ff41ac1b77d3749bf49c30cdbdedd1553f",
              "archive_url": "https://raw.githubusercontent.com/KokunoYumeto/open-math-courses/4052a2ff41ac1b77d3749bf49c30cdbdedd1553f/docs/downloads/haar-measure-and-quotient-integration.zip",
              "archive_bytes": 1153335,
              "archive_sha256": "57ca3462c078c4ef4ee6009d122233f7189bfc33de3567de10ca39d2f651c41d",
              "anonymous_same_bytes": true,
              "current_archive_url": "https://kokunoyumeto.github.io/open-math-courses-public/courses/harmonic-analysis-on-locally-compact-groups/reader/"
            },
            "readers": {
              "id": {
                "path": "docs/editions/haar-measure-and-quotient-integration/index.id.html",
                "bytes": 103987,
                "sha256": "de9d1cf2a8594839a3ae46095382cad36c8abfa28de00fb87833ee0598c46f8c",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/editions/haar-measure-and-quotient-integration/index.id.html"
              },
              "en": {
                "path": "docs/editions/haar-measure-and-quotient-integration/index.en.html",
                "bytes": 102571,
                "sha256": "a9995f6691dfbf68392e59446b9d147afc2a41d33bc5797890f6b67308baaf43",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/editions/haar-measure-and-quotient-integration/index.en.html"
              }
            },
            "files": [
              {
                "path": "docs/editions/haar-measure-and-quotient-integration/files/00-haar-measure-and-quotient-integration.pdf",
                "bytes": 851246,
                "sha256": "d0d5fde719f2add941acd8e8c98af4e52544d63feae4e0c6cf3152eea4dc825d",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/editions/haar-measure-and-quotient-integration/files/00-haar-measure-and-quotient-integration.pdf"
              },
              {
                "path": "docs/editions/haar-measure-and-quotient-integration/files/01-haar-measure-and-quotient-integration.tex",
                "bytes": 634559,
                "sha256": "51b1f1e45380a2ae0c9e46a0cb59df073fa834240a34af82a7a314a05270b8cb",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/editions/haar-measure-and-quotient-integration/files/01-haar-measure-and-quotient-integration.tex"
              },
              {
                "path": "docs/editions/haar-measure-and-quotient-integration/files/02-haar-measure-and-quotient-integration-source.zip",
                "bytes": 997771,
                "sha256": "45865d0c3e704f141d575be68912ac81d61b4d6cb1ae43dc2541e385978f80b5",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/editions/haar-measure-and-quotient-integration/files/02-haar-measure-and-quotient-integration-source.zip"
              },
              {
                "path": "docs/editions/haar-measure-and-quotient-integration/files/03-haar-measure-and-quotient-integration.epub",
                "bytes": 391127,
                "sha256": "e614a52c327c9968a1ba3c20a76c4262b440d6f657c9a6029b05ee1b139bb724",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/editions/haar-measure-and-quotient-integration/files/03-haar-measure-and-quotient-integration.epub"
              }
            ],
            "lesson_count": 4,
            "prerequisite_chapters": 7,
            "supplements": 1,
            "pdf_pages": 140,
            "native_locations": 215,
            "proof_dependency_closure": "not_established_by_format_validation",
            "new_translation": false
          }
        ]
      },
      {
        "id": "AN-03",
        "kind": "advanced",
        "title": {
          "en": "Elliptic operators and boundary problems"
        },
        "summary": "Symbol calculus with a varying scale, elliptic regularity, global operator theory and boundary problems.",
        "subject": "analysis-pde",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
        "status": "draft",
        "status_note": "Spot-checked in a separate session.",
        "authorship": "GPT-6 Astra and GPT-6 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "AN03-P001",
            "title": "Exact prerequisite interfaces for quadratic multiplier estimates",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-P002",
            "title": "Polynomial and contour interfaces for stable boundary models",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U003",
            "title": "Stable modes and the algebra of boundary data",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U006",
            "title": "Local inverses and distance-weighted elliptic estimates",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-P003",
            "title": "Support contracts for moving-metric localization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U001",
            "title": "Localizing symbols when the measuring scale moves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U002",
            "title": "Quantitative estimates for quadratic Fourier multipliers",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U004",
            "title": "Two measuring scales, one Weyl product",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U010",
            "title": "From symbol estimates to operators on every Sobolev scale",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U008",
            "title": "Singularities along a submanifold and smooth boundary passage",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U009",
            "title": "From Weyl symbols to operators and changes of coordinates",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U012",
            "title": "Detecting regularity without choosing coordinates",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U013",
            "title": "Curved weights and the directions in which support can end",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U014",
            "title": "Detecting a solution from infinite-order silence at one point",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-P004",
            "title": "Banach estimates, quotient spaces and compact parameter arguments",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U005",
            "title": "Finite defects under perturbation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U007",
            "title": "Traces that survive passage to cohomology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U011",
            "title": "Positivity through a moving family of scalar probes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U015",
            "title": "From local energy to global divergence equations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U016",
            "title": "Positive energy and vanishing at the far end of space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U017",
            "title": "Boundary energy, local inverses, and harmonic data",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U018",
            "title": "When a moving symbol scale controls an operator",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U019",
            "title": "When a nonnegative scalar symbol acquires a negative part",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U020",
            "title": "Building a local inverse from radial singularities",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U021",
            "title": "Causal kernels, initial data, and short-time geometry",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U022",
            "title": "A wave kernel that cancels at a curved boundary",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U023",
            "title": "Symbols, finite defects, and the index on a closed manifold",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U024",
            "title": "Cauchy data from jumps and residues",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U025",
            "title": "Solving an elliptic system from compatible boundary measurements",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-P005",
            "title": "Spectral measures with the original operator domain retained",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U026",
            "title": "Dirichlet realizations, spectral projectors, and local extensions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U027",
            "title": "Changing an interior frame to extend an invertible matrix",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U028",
            "title": "Inverting mixed symbols without commuting matrix factors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U029",
            "title": "Composition of mixed symbols with two different remainder estimates",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U030",
            "title": "Mixed symbols on every real two-parameter Sobolev scale",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          },
          {
            "id": "AN03-U031",
            "title": "Polynomial inverse expansion with ordered matrix coefficients",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-operators-and-boundary-problems/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "totally-characteristic-operators",
        "kind": "advanced",
        "title": {
          "en": "Totally characteristic operators"
        },
        "summary": "Pseudodifferential operators on the half space that respect the boundary: quantization with a compressed normal frequency, lacunary symbols, adjoints and composition, kernels near the corner, and continuity on Sobolev and Besov spaces.",
        "subject": "analysis-pde",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-boundary-reduction/totally-characteristic-operators.html",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "totally-characteristic-operators-on-the-half-space",
            "title": "Totally characteristic operators on the half space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-boundary-reduction/totally-characteristic-operators.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/elliptic-boundary-reduction/totally-characteristic-operators.html"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "index-theory-of-elliptic-operators",
        "kind": "advanced",
        "title": {
          "en": "Index theory of elliptic operators"
        },
        "summary": "The index of an elliptic operator on a compact manifold, reduced to an operator on Euclidean space through the Bott operator and the suspension theorem, as in the embedding proof of the Atiyah–Singer index theorem.",
        "subject": "analysis-pde",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/index-theory-of-elliptic-operators/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "the-bott-operator-suspension-and-reduction-of-the-index-to-euclidean-space",
            "title": "The Bott operator, suspension, and reduction of the index to Euclidean space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/index-theory-of-elliptic-operators/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/index-theory-of-elliptic-operators/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "derived-categories-and-sheaf-operations",
        "kind": "advanced",
        "title": {
          "en": "Derived categories and sheaf operations"
        },
        "summary": "Derived categories of sheaves on arbitrary ringed spaces: module sheaves and exact operations, injective and K-flat resolutions, derived tensor and Hom, supports, perfect complexes, projection formula and base change maps.",
        "subject": "sheaves-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/",
        "status": "draft",
        "status_note": "All ten expanded lessons and the common categorical reading are written and mathematically self-checked by the writing AI, GPT-6.1 Sol (OpenAI), at Ultra. No independent review is claimed.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex at Ultra; retained contributions by Claude Opus 5.5 and GPT-6 Astra at Ultra",
        "licence": {
          "spdx": "GFDL-1.2-or-later",
          "scope": "Combined revised edition; original CC0 passages retain their dedication",
          "exceptions": [
            "Original independent content is CC0; adapted Stacks and retained combined-edition proof text keeps GFDL-1.2-or-later. See course source and licensing notice."
          ]
        },
        "lessons": [
          {
            "id": "sheaves-of-modules-on-a-ringed-space",
            "title": "Sheaves of modules on a ringed space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/sheaves-of-modules-on-a-ringed-space.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/sheaves-of-modules-on-a-ringed-space.md"
          },
          {
            "id": "complexes-cones-and-localization",
            "title": "Complexes, cones and localization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/complexes-cones-and-localization.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/complexes-cones-and-localization.md"
          },
          {
            "id": "injective-modules-and-bounded-below-derived-functors",
            "title": "Injective modules, flasque sheaves and bounded-below derived functors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/injective-modules-and-bounded-below-derived-functors.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/injective-modules-and-bounded-below-derived-functors.md"
          },
          {
            "id": "k-injective-resolutions-in-grothendieck-categories",
            "title": "K-injective resolutions in Grothendieck abelian categories",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/k-injective-resolutions-in-grothendieck-categories.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/k-injective-resolutions-in-grothendieck-categories.md"
          },
          {
            "id": "flat-modules-and-k-flat-resolutions",
            "title": "Flat modules and K-flat resolutions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/flat-modules-and-k-flat-resolutions.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/flat-modules-and-k-flat-resolutions.md"
          },
          {
            "id": "derived-tensor-products-and-tor-sheaves",
            "title": "The derived tensor product and Tor sheaves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/derived-tensor-products-and-tor-sheaves.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/derived-tensor-products-and-tor-sheaves.md"
          },
          {
            "id": "derived-pullback-and-pushforward",
            "title": "Derived pullback and pushforward",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/derived-pullback-and-pushforward.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/derived-pullback-and-pushforward.md"
          },
          {
            "id": "internal-derived-hom-and-ext-sheaves",
            "title": "Hom complexes, internal derived Hom and Ext sheaves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/internal-derived-hom-and-ext-sheaves.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/internal-derived-hom-and-ext-sheaves.md"
          },
          {
            "id": "sections-with-support-and-the-localization-triangle",
            "title": "Sections with support and the localization triangle",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/sections-with-support-and-the-localization-triangle.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/sections-with-support-and-the-localization-triangle.md"
          },
          {
            "id": "perfect-complexes-and-duals",
            "title": "Perfect complexes and duals on a ringed space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/perfect-complexes-and-duals.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/perfect-complexes-and-duals.md"
          },
          {
            "id": "projection-formula-and-base-change",
            "title": "The projection formula and the base change map",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/projection-formula-and-base-change.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/projection-formula-and-base-change.md"
          },
          {
            "id": "sheaves-of-modules-and-their-derived-categories",
            "title": "Sheaves of modules and their derived categories",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/sheaves-of-modules-and-their-derived-categories.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/sheaves-of-modules-and-their-derived-categories.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": [
          {
            "course_id": "derived-categories-and-sheaf-operations",
            "slug": "derived-categories-of-sheaves",
            "title": "Derived categories of sheaves",
            "content_language": "en",
            "notes": {
              "en": "English course: ten lessons and one common reading, 102 PDF pages. PDF, direct cumulative LaTeX, complete source ZIP and EPUB; exact lesson and named-location links. Original GFDL and authorship retained. Format checks do not add independent mathematical review.",
              "id": "Mata kuliah berbahasa Inggris: sepuluh pelajaran dan satu bacaan bersama, 102 halaman PDF. Tersedia PDF, LaTeX kumulatif langsung, ZIP sumber lengkap dan EPUB, dengan tautan pelajaran serta lokasi berlabel. GFDL dan atribusi asli dipertahankan. Pemeriksaan format tidak menambahkan penelaahan matematika mandiri."
            },
            "coverage": "Includes all eleven units in the published reading order, full source/authorship notice and GNU Free Documentation License. Linked preceding programme material, including Methods of Algebra Volume 2, is not reproduced in this volume.",
            "edition": {
              "path": "docs/editions/derived-categories-of-sheaves/EDITION.json",
              "bytes": 3393,
              "sha256": "4128f752678f635194f29adc9e40242a4397468986308983796ac448b01f0c99"
            },
            "source": {
              "repository": "https://github.com/KokunoYumeto/open-math-courses",
              "commit": "ab6355559cfe66ca43cc623f20c1df1d754bdc85",
              "archive_url": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/",
              "archive_bytes": 998627,
              "archive_sha256": "5c80a7c867ce6afc42ca0a58e6b5a4e450a4509ed0471fc7d31d692fed649e60",
              "anonymous_same_bytes": true
            },
            "readers": {
              "id": {
                "path": "docs/editions/derived-categories-of-sheaves/index.id.html",
                "bytes": 50947,
                "sha256": "0b679c0c5eaa76801e8f85914a86cd2204738a321ffd9adfd91b3b14c1951420",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/editions/derived-categories-of-sheaves/index.id.html"
              },
              "en": {
                "path": "docs/editions/derived-categories-of-sheaves/index.en.html",
                "bytes": 50222,
                "sha256": "794ce6c0bd9bcb1941552613866772fc313cdb6eab7be435f237a2a644e86bfa",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/editions/derived-categories-of-sheaves/index.en.html"
              }
            },
            "files": [
              {
                "path": "docs/editions/derived-categories-of-sheaves/files/00-derived-categories-of-sheaves.pdf",
                "bytes": 585307,
                "sha256": "73dc7d993581ec93fb9adf311b45f5df52d7bf5a2adb3879ac0b014f516a0e4d",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/editions/derived-categories-of-sheaves/files/00-derived-categories-of-sheaves.pdf"
              },
              {
                "path": "docs/editions/derived-categories-of-sheaves/files/01-derived-categories-of-sheaves.tex",
                "bytes": 439102,
                "sha256": "f01d7b935f2d561c5982b960e95847f7a4e653611d80250967ca382015745dd8",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/editions/derived-categories-of-sheaves/files/01-derived-categories-of-sheaves.tex"
              },
              {
                "path": "docs/editions/derived-categories-of-sheaves/files/02-derived-categories-of-sheaves-source.zip",
                "bytes": 811107,
                "sha256": "122f8c860fa89adb8f9c07c466e06b65c346809329c2e46333109490310cca48",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/editions/derived-categories-of-sheaves/files/02-derived-categories-of-sheaves-source.zip"
              },
              {
                "path": "docs/editions/derived-categories-of-sheaves/files/03-derived-categories-of-sheaves.epub",
                "bytes": 252346,
                "sha256": "85cb813eb6f8c7b31de69acdcf9c946d871c6617bb81c78af263cda82ea8200f",
                "url": "https://kokunoyumeto.github.io/program-matematika-indonesia/editions/derived-categories-of-sheaves/files/03-derived-categories-of-sheaves.epub"
              }
            ],
            "lesson_count": 10,
            "prerequisite_chapters": 0,
            "supplements": 0,
            "pdf_pages": 102,
            "native_locations": 92,
            "proof_dependency_closure": "not_established_by_format_validation",
            "new_translation": false
          }
        ]
      },
      {
        "id": "SH-02",
        "kind": "advanced",
        "title": {
          "en": "Microlocal sheaves"
        },
        "summary": "Conic sheaves and kernel operations, developed into specialization, microlocalization and the geometry of microsupports.",
        "subject": "sheaves-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
        "status": "draft",
        "status_note": "Self-checked by its authors.",
        "authorship": "GPT-6 Astra and GPT-6 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text and the drawings in its figures, written for this course.",
          "exceptions": [
            "Rendered DejaVu font glyphs in the figures keep the DejaVu font licence (see the notices)."
          ]
        },
        "lessons": [
          {
            "id": "SH02-COURSE-CONTRACT",
            "title": "How to use this course draft",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/course-contract.md"
          },
          {
            "id": "SH02-PREREQ-OPEN",
            "title": "Open prerequisites and exact import contracts",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-PREREQ-PROOFS",
            "title": "Supporting verifications for open prerequisites",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-OEA",
            "title": "Open extensions and ambient supports",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/open-extension-adjunction.md"
          },
          {
            "id": "SH02-SIX-BRIDGE",
            "title": "Proper supports and the bounded classical comparison",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-SXP",
            "title": "Proper-support composition through a change of base",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/six-operation-pasting.md"
          },
          {
            "id": "SH02-CA",
            "title": "Extending sections on convex sets",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-SUP-EXH-001",
            "title": "Recovering sheaf cohomology from closed pieces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-NCD",
            "title": "Continuing cohomology through a moving boundary",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-EX",
            "title": "Exceptional inverse image from a finite resolution",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-UR",
            "title": "Finite resolutions without a lower bound",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-CON",
            "title": "Transport along a scaling action",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-MD",
            "title": "Local orientations, dimension, and integration",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-KER",
            "title": "Composing sheaf operators through an intermediate space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-SPH",
            "title": "Inverse operators from complementary hemisphere boundaries",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/sphere-kernels.md"
          },
          {
            "id": "SH02-FS",
            "title": "Fourier kernels as radial averaging",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-FDN",
            "title": "Fourier duality through a test complex on the base",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-UFD",
            "title": "Duality when the dual leaves the original transform category",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/unbounded-fourier-duality.md"
          },
          {
            "id": "SH02-FTC",
            "title": "Comparing traces after Fourier transformation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-FF",
            "title": "Moving Fourier kernels across maps and products",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-LFT",
            "title": "A linear map inside the Fourier comparison",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-FGC-UNIT",
            "title": "The graded line in a Fourier support comparison",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-FTE-UNIT",
            "title": "Transposing the complete Fourier trace comparison",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-NDF-UNIT",
            "title": "The geometric normalization of Fourier adjunctions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-MEP-UNIT",
            "title": "Following the comparison maps into the normal bundle",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-GAM",
            "title": "Directional neighborhoods and a sheaf projector",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-FSB",
            "title": "Formal stabilization over arbitrary neighborhood sets",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-CB",
            "title": "Finite local data and sheaf biduality",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-DA",
            "title": "Supports, characteristic classes, and finite duality",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/duality-applications.md"
          },
          {
            "id": "SH02-CTA",
            "title": "Boundary conditions, incidence operators, and trace identities",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/conic-and-trace-applications.md"
          },
          {
            "id": "SH02-CAX",
            "title": "Convex tests and radial comparisons",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/conic-auxiliary-constructions.md"
          },
          {
            "id": "SH02-NG",
            "title": "Normal geometry as a family with a central fibre",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-SP",
            "title": "Reading a sheaf at the normal scale",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-MIC",
            "title": "Covector tests of normal limits",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-SA",
            "title": "What a normal limit preserves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/specialization-applications.md"
          },
          {
            "id": "SH02-MST",
            "title": "Detecting and removing directional obstructions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-MSD",
            "title": "Comparing sheaves through local support tests",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/microlocal-comparison-foundations.md"
          },
          {
            "id": "SH02-MH",
            "title": "Local morphisms in cotangent directions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-MHPR",
            "title": "Product recovery for microlocal composition",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-MHPC",
            "title": "Transporting both inputs before forming internal Hom",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-FAG-UNIT",
            "title": "Analytic geometry for finite maps",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/finite-map-analytic-geometry.md"
          },
          {
            "id": "SH02-NMC-UNIT",
            "title": "Normal Morse data and change of coefficients",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/normal-morse-coefficients.md"
          },
          {
            "id": "SH02-PNM-UNIT",
            "title": "Perverse degrees and normal Morse complexes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/perverse-normal-morse-inputs.md"
          },
          {
            "id": "SH02-IHM-UNIT",
            "title": "An isolated holomorphic test and its Morse filtration",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/isolated-holomorphic-morse-tests.md"
          },
          {
            "id": "SH02-FH",
            "title": "Directional information under a finite holomorphic map",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/finite-holomorphic-microsupport.md"
          },
          {
            "id": "SH02-UCE",
            "title": "Uniform tests for an unbounded Hom complex",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-SUB",
            "title": "Reading a subset through its sheaf",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-MO",
            "title": "Transporting directional obstructions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-MSA",
            "title": "Directional constraints under algebraic and geometric constructions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/microsupport-applications.md"
          },
          {
            "id": "SH02-MC",
            "title": "Categories and operations in one cotangent direction",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-AE",
            "title": "Covectors at a boundary and at infinity",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-CHE",
            "title": "Cotangent directions that survive a limiting operation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-INV",
            "title": "Hamiltonian motion forced by a sheaf",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/involutivity.md"
          },
          {
            "id": "SH02-LFI",
            "title": "Local models and change of ambient manifold",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/"
          },
          {
            "id": "SH02-MA",
            "title": "Continuing coefficients and transporting local morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/microlocal-applications.md"
          },
          {
            "id": "SH02-RR",
            "title": "From directional tests to further microlocal theories",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-02/src/research-routes.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AN-06",
        "kind": "advanced",
        "title": {
          "en": "Spectra, resolvents and scattering"
        },
        "summary": "Resolvent boundary values, radiation and scattering, followed by wave traces and spectral asymptotics.",
        "subject": "analysis-pde",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
        "status": "draft",
        "status_note": "Self-checked by GPT-6.1 Sol; separate-session spot checking has not been performed.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The original lesson text, figures and figure-generation sources written for this course.",
          "exceptions": [
            "Linked prerequisite works and third-party mathematical rendering assets retain their own licences."
          ]
        },
        "lessons": [
          {
            "id": "AN06-U001",
            "title": "Resolvents, domains and spectral density",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/resolvents-domains-and-spectral-density.md"
          },
          {
            "id": "AN06-U002",
            "title": "Endpoint spaces and flat energy shells",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/endpoint-spaces-and-flat-energy-shells.md"
          },
          {
            "id": "AN06-U005",
            "title": "Fourier traces on curved energy surfaces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/fourier-traces-on-curved-energy-surfaces.md"
          },
          {
            "id": "AN06-U006",
            "title": "Mild weights and frequency localization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/mild-weights-and-frequency-localization.md"
          },
          {
            "id": "AN06-U007",
            "title": "Division and radiation at regular energies",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/division-and-radiation-at-regular-energies.md"
          },
          {
            "id": "AN06-U008",
            "title": "Polynomial translations and regular energies",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/polynomial-translations-and-regular-energies.md"
          },
          {
            "id": "AN06-U009",
            "title": "Global polynomial resolvent estimates",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/global-polynomial-resolvent-estimates.md"
          },
          {
            "id": "AN06-U010",
            "title": "Global radiation and flux",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/global-radiation-and-flux.md"
          },
          {
            "id": "AN06-U011",
            "title": "Short-range compactness and local tests",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/short-range-compactness-and-local-tests.md"
          },
          {
            "id": "AN06-U021",
            "title": "Polynomial localizations and rough coefficients",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/polynomial-localizations-and-rough-coefficients.md"
          },
          {
            "id": "AN06-U012",
            "title": "Self-adjoint short-range operators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/self-adjoint-short-range-operators.md"
          },
          {
            "id": "AN06-U004",
            "title": "Wave operators and modified phases",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/wave-operators-and-modified-phases.md"
          },
          {
            "id": "AN06-U013",
            "title": "Wave operators for differential perturbations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/wave-operators-for-differential-perturbations.md"
          },
          {
            "id": "AN06-U014",
            "title": "Limiting absorption and point spectrum",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/limiting-absorption-and-point-spectrum.md"
          },
          {
            "id": "AN06-U015",
            "title": "Distorted Fourier transforms and spectral density",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/distorted-fourier-transforms-and-spectral-density.md"
          },
          {
            "id": "AN06-U016",
            "title": "Asymptotic completeness for short-range operators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/asymptotic-completeness-for-short-range-operators.md"
          },
          {
            "id": "AN06-U017",
            "title": "Compact perturbations in weighted Hilbert spaces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/compact-perturbations-in-weighted-hilbert-spaces.md"
          },
          {
            "id": "AN06-U018",
            "title": "Scattering matrices at regular energies",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/scattering-matrices-at-regular-energies.md"
          },
          {
            "id": "AN06-U019",
            "title": "One-dimensional scattering and phase shifts",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/one-dimensional-scattering-and-phase-shifts.md"
          },
          {
            "id": "AN06-U020",
            "title": "Quadratic weights and uniqueness at infinity",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/quadratic-weights-and-uniqueness-at-infinity.md"
          },
          {
            "id": "AN06-U022",
            "title": "Wave evolution and cotangent flow",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/wave-evolution-and-cotangent-flow.md"
          },
          {
            "id": "AN06-U023",
            "title": "Local spectral density and the subprincipal correction",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/local-spectral-density-and-subprincipal-correction.md"
          },
          {
            "id": "AN06-U024",
            "title": "Return times and spectral counting",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/return-times-and-spectral-counting.md"
          },
          {
            "id": "AN06-U025",
            "title": "Compressed spectral measures and symbol distributions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/compressed-spectral-measures-and-symbol-distributions.md"
          },
          {
            "id": "AN06-U026",
            "title": "Positive real powers and spectral rescaling",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/positive-real-powers-and-spectral-rescaling.md"
          },
          {
            "id": "AN06-U027",
            "title": "Arithmetic spectral clusters and their distributions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/arithmetic-spectral-clusters-and-their-distributions.md"
          },
          {
            "id": "AN06-U028",
            "title": "Averaging a perturbation around closed trajectories",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/averaging-a-perturbation-around-closed-trajectories.md"
          },
          {
            "id": "AN06-U029",
            "title": "Reflection and the Dirichlet boundary coefficient",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/reflection-and-the-dirichlet-boundary-coefficient.md"
          },
          {
            "id": "AN06-U051",
            "title": "Generalized rays and the Dirichlet Weyl law",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/generalized-rays-and-the-dirichlet-weyl-law.md"
          },
          {
            "id": "AN06-U003",
            "title": "Regularizing long-range coefficients",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/long-range-coefficient-calculus.md"
          },
          {
            "id": "AN06-U030",
            "title": "Admissible differential perturbations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/admissible-differential-perturbations.md"
          },
          {
            "id": "AN06-U031",
            "title": "The Sobolev domain of an elliptic operator",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/the-sobolev-domain-of-an-elliptic-operator.md"
          },
          {
            "id": "AN06-U032",
            "title": "Weighted Sobolev spaces and rough elliptic estimates",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/weighted-sobolev-spaces-and-rough-elliptic-estimates.md"
          },
          {
            "id": "AN06-U033",
            "title": "The resolvent away from the energy surface",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/the-resolvent-away-from-the-energy-surface.md"
          },
          {
            "id": "AN06-U034",
            "title": "A resolvent estimate at noncritical frequencies",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/a-resolvent-estimate-at-noncritical-frequencies.md"
          },
          {
            "id": "AN06-U035",
            "title": "Combining the long-range resolvent estimates",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/combining-the-long-range-resolvent-estimates.md"
          },
          {
            "id": "AN06-U036",
            "title": "Radiation for limits of long-range resolvents",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/radiation-for-limits-of-long-range-resolvents.md"
          },
          {
            "id": "AN06-U037",
            "title": "Outgoing flux and vanishing shell mass",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/outgoing-flux-and-vanishing-shell-mass.md"
          },
          {
            "id": "AN06-U038",
            "title": "Weighted endpoint estimates and polynomial decay",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/weighted-endpoint-estimates-and-polynomial-decay.md"
          },
          {
            "id": "AN06-U039",
            "title": "Limiting absorption for long-range differential perturbations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/limiting-absorption-for-long-range-differential-perturbations.md"
          },
          {
            "id": "AN06-U040",
            "title": "Hamilton trajectories under a long-range force",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/hamilton-trajectories-under-a-long-range-force.md"
          },
          {
            "id": "AN06-U041",
            "title": "Smooth long-range phases from Hamilton trajectories",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/smooth-long-range-phases-from-hamilton-trajectories.md"
          },
          {
            "id": "AN06-U042",
            "title": "Escaping Lagrangians on regular energy surfaces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/escaping-lagrangians-on-regular-energy-surfaces.md"
          },
          {
            "id": "AN06-U043",
            "title": "Generating functions and the end of a localized force",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/generating-functions-and-the-end-of-a-localized-force.md"
          },
          {
            "id": "AN06-U044",
            "title": "Modified waves and the direction of escape",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/modified-waves-and-the-direction-of-escape.md"
          },
          {
            "id": "AN06-U045",
            "title": "Energy-shell factors and outgoing equations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/energy-shell-factors-and-outgoing-equations.md"
          },
          {
            "id": "AN06-U046",
            "title": "Frequency cutoffs and compact scattering remainders",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/frequency-cutoffs-and-compact-scattering-remainders.md"
          },
          {
            "id": "AN06-U047",
            "title": "Commuting coordinates for long-range evolution",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/commuting-coordinates-for-long-range-evolution.md"
          },
          {
            "id": "AN06-U048",
            "title": "Transverse moments and outgoing amplitudes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/transverse-moments-and-outgoing-amplitudes.md"
          },
          {
            "id": "AN06-U049",
            "title": "Truncated operators and stable scattering amplitudes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/truncated-operators-and-stable-scattering-amplitudes.md"
          },
          {
            "id": "AN06-U050",
            "title": "Spectral transforms and completeness of modified waves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AN-06/src/spectral-transforms-and-completeness-of-modified-waves.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "the-field-with-one-element",
        "kind": "advanced",
        "title": {
          "en": "The field with one element"
        },
        "summary": "What a geometry over a field with one element is asked to do, and the constructions proposed for it: counting points over finite fields in the limit q → 1, Weil's proof of the Riemann hypothesis for curves, monoid schemes, torified varieties, the varieties of Soulé and of Connes and Consani, schemes relative to a symmetric monoidal category, Λ-rings, generalized rings, blueprints, hyperrings, Γ-sets, the arithmetic site, the scaling site, and the projective line over the field with one element with its link to the ABC conjecture.",
        "subject": "arithmetic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/",
        "status": "draft",
        "status_note": "Spot-checked by Claude Opus 5.5 in a separate session.",
        "authorship": "Claude Opus 5.5 (Anthropic)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The lesson text, written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "counting-over-finite-fields-and-the-limit-q-1",
            "title": "Counting over finite fields and the limit q → 1",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/counting-over-finite-fields-and-the-limit-q-1.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/counting-over-finite-fields-and-the-limit-q-1.md"
          },
          {
            "id": "weil-s-proof-for-curves-and-what-is-missing-over-the-integers",
            "title": "Weil's proof for curves and what is missing over the integers",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/weil-s-proof-for-curves-and-what-is-missing-over-the-integers.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/weil-s-proof-for-curves-and-what-is-missing-over-the-integers.md"
          },
          {
            "id": "commutative-monoids-and-their-spectra",
            "title": "Commutative monoids and their spectra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/commutative-monoids-and-their-spectra.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/commutative-monoids-and-their-spectra.md"
          },
          {
            "id": "monoid-schemes",
            "title": "Monoid schemes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/monoid-schemes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/monoid-schemes.md"
          },
          {
            "id": "torified-varieties-and-the-limits-of-monoid-schemes",
            "title": "Torified varieties and the limits of monoid schemes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/torified-varieties-and-the-limits-of-monoid-schemes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/torified-varieties-and-the-limits-of-monoid-schemes.md"
          },
          {
            "id": "varieties-over-the-field-with-one-element-after-soule-and-connes-consani",
            "title": "Varieties over the field with one element after Soulé and Connes–Consani",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/varieties-over-the-field-with-one-element-after-soule-and-connes-consani.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/varieties-over-the-field-with-one-element-after-soule-and-connes-consani.md"
          },
          {
            "id": "schemes-relative-to-a-symmetric-monoidal-category",
            "title": "Schemes relative to a symmetric monoidal category",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/schemes-relative-to-a-symmetric-monoidal-category.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/schemes-relative-to-a-symmetric-monoidal-category.md"
          },
          {
            "id": "lambda-rings-and-descent-to-the-field-with-one-element",
            "title": "Λ-rings and descent to the field with one element",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/lambda-rings-and-descent-to-the-field-with-one-element.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/lambda-rings-and-descent-to-the-field-with-one-element.md"
          },
          {
            "id": "generalized-rings",
            "title": "Generalized rings",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/generalized-rings.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/generalized-rings.md"
          },
          {
            "id": "blueprints-and-blue-schemes",
            "title": "Blueprints and blue schemes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/blueprints-and-blue-schemes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/blueprints-and-blue-schemes.md"
          },
          {
            "id": "characteristic-one-and-hyperrings",
            "title": "Characteristic one and hyperrings",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/characteristic-one-and-hyperrings.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/characteristic-one-and-hyperrings.md"
          },
          {
            "id": "gamma-sets-and-algebras-over-the-sphere",
            "title": "Γ-sets and algebras over the sphere",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/gamma-sets-and-algebras-over-the-sphere.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/gamma-sets-and-algebras-over-the-sphere.md"
          },
          {
            "id": "the-arithmetic-site",
            "title": "The arithmetic site",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/the-arithmetic-site.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/the-arithmetic-site.md"
          },
          {
            "id": "the-scaling-site",
            "title": "The scaling site",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/the-scaling-site.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/the-scaling-site.md"
          },
          {
            "id": "the-projective-line-over-f-1-and-the-abc-conjecture",
            "title": "The projective line over F_1 and the ABC conjecture",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/the-projective-line-over-f-1-and-the-abc-conjecture.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/the-field-with-one-element/src/the-projective-line-over-f-1-and-the-abc-conjecture.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AG-GS",
        "kind": "advanced",
        "title": {
          "en": "Group schemes"
        },
        "summary": "Group schemes through functors of points, Hopf algebras, Lie algebras, components, quotients and torsors, multiplicative type, abelian varieties and Néron models.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI). Independent AI review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Independently authored course text and proofs.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "AG-GS-01",
            "title": "Group schemes, actions and Hopf algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/AG-GS-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/src/group-schemes-actions-and-hopf-algebras.md"
          },
          {
            "id": "AG-GS-02",
            "title": "Lie algebras and smoothness of group schemes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/AG-GS-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/src/lie-algebras-and-smoothness.md"
          },
          {
            "id": "AG-GS-03",
            "title": "Group schemes over a field",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/AG-GS-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/src/group-schemes-over-a-field.md"
          },
          {
            "id": "AG-GS-04",
            "title": "Quotients and torsors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/AG-GS-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/src/quotients-and-torsors.md"
          },
          {
            "id": "AG-GS-05",
            "title": "Diagonalizable groups and groups of multiplicative type",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/AG-GS-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/src/diagonalizable-groups.md"
          },
          {
            "id": "AG-GS-06",
            "title": "Abelian varieties",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/AG-GS-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/src/abelian-varieties.md"
          },
          {
            "id": "AG-GS-07",
            "title": "Néron models",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/AG-GS-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-GS/src/neron-models.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "hilbert-c-star-modules-and-morita-equivalence",
        "kind": "advanced",
        "title": {
          "en": "Hilbert C*-modules and Morita equivalence"
        },
        "summary": "Hilbert C*-modules, adjointable and compact operators, finite projective modules, tensor products, stabilization, Fredholm index, regular operators and continuous fields; completely positive maps, imprimitivity bimodules, induced representations, stable isomorphism and Morita equivalence in K-theory and noncommutative tori.",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/",
        "status": "draft",
        "status_note": "Self-checked by GPT-6.1 Sol. Independent review is in progress.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original lesson text written for this course.",
          "exceptions": [
            "The linked projection proof by Marina Prokhorova, From graph to Riesz continuity, retains CC BY 4.0; its text is not reproduced. The field-to-projection reduction is original CC0 writing.",
            "Other linked works and mathematical rendering assets retain their own licences."
          ]
        },
        "lessons": [
          {
            "id": "hilbert-c-star-modules",
            "title": "Hilbert C*-modules",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/hilbert-c-star-modules.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/hilbert-c-star-modules.md"
          },
          {
            "id": "adjointable-operators",
            "title": "Adjointable operators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/adjointable-operators.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/adjointable-operators.md"
          },
          {
            "id": "compact-operators-multipliers-and-the-strict-topology",
            "title": "Compact operators, multipliers and the strict topology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/compact-operators-multipliers-and-the-strict-topology.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/compact-operators-multipliers-and-the-strict-topology.md"
          },
          {
            "id": "finite-projective-modules-frames-and-k0",
            "title": "Finite projective modules, frames and K_0",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/finite-projective-modules-frames-and-k0.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/finite-projective-modules-frames-and-k0.md"
          },
          {
            "id": "tensor-products-and-c-star-correspondences",
            "title": "Tensor products and C*-correspondences",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/tensor-products-and-c-star-correspondences.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/tensor-products-and-c-star-correspondences.md"
          },
          {
            "id": "kasparovs-stabilization-theorem",
            "title": "Kasparov's stabilization theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/kasparovs-stabilization-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/kasparovs-stabilization-theorem.md"
          },
          {
            "id": "fredholm-operators-and-the-k0-index",
            "title": "Fredholm operators and the K₀ index",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/fredholm-operators-and-the-k0-index.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/fredholm-operators-and-the-k0-index.md"
          },
          {
            "id": "unbounded-regular-operators",
            "title": "Unbounded regular operators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/unbounded-regular-operators.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/unbounded-regular-operators.md"
          },
          {
            "id": "continuous-fields-over-locally-compact-spaces",
            "title": "Continuous fields over locally compact spaces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/continuous-fields-over-locally-compact-spaces.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/continuous-fields-over-locally-compact-spaces.md"
          },
          {
            "id": "completely-positive-maps-and-the-ksgns-construction",
            "title": "Completely positive maps and the KSGNS construction",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/completely-positive-maps-and-the-ksgns-construction.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/completely-positive-maps-and-the-ksgns-construction.md"
          },
          {
            "id": "imprimitivity-bimodules-and-morita-equivalence",
            "title": "Imprimitivity bimodules and Morita equivalence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/imprimitivity-bimodules-and-morita-equivalence.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/imprimitivity-bimodules-and-morita-equivalence.md"
          },
          {
            "id": "the-rieffel-correspondence-and-induced-representations",
            "title": "The Rieffel correspondence and induced representations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/the-rieffel-correspondence-and-induced-representations.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/the-rieffel-correspondence-and-induced-representations.md"
          },
          {
            "id": "stable-isomorphism-and-the-brown-green-rieffel-theorem",
            "title": "Stable isomorphism: the Brown–Green–Rieffel theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/stable-isomorphism-and-the-brown-green-rieffel-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/stable-isomorphism-and-the-brown-green-rieffel-theorem.md"
          },
          {
            "id": "morita-invariance-of-k-theory-and-correspondence-maps",
            "title": "Morita invariance of K-theory and maps induced by correspondences",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/morita-invariance-of-k-theory-and-correspondence-maps.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/morita-invariance-of-k-theory-and-correspondence-maps.md"
          },
          {
            "id": "morita-equivalence-of-noncommutative-tori",
            "title": "Morita equivalence of noncommutative tori",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/morita-equivalence-of-noncommutative-tori.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/hilbert-c-star-modules-and-morita-equivalence/src/morita-equivalence-of-noncommutative-tori.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AG-LTF",
        "kind": "advanced",
        "title": {
          "en": "ℓ-adic cohomology and trace formulas"
        },
        "summary": "Adic coefficients and Frobenius traces, developed through Lefschetz formulas, L-functions, vanishing cycles and the Riemann hypothesis over finite fields.",
        "subject": "arithmetic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/",
        "status": "draft",
        "status_note": "Self-checked by GPT-6.1 Sol; independent checking pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The original course text, proofs, examples and exercises. Linked references retain their own rights.",
          "exceptions": [
            "Linked prerequisite and source works retain their own rights."
          ]
        },
        "lessons": [
          {
            "id": "l-adic-sheaves-and-their-cohomology",
            "title": "ℓ-adic sheaves and their cohomology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/l-adic-sheaves-and-their-cohomology.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/src/l-adic-sheaves-and-their-cohomology.md"
          },
          {
            "id": "the-pro-etale-site-and-l-adic-complexes",
            "title": "The pro-étale site and ℓ-adic complexes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/the-pro-etale-site-and-l-adic-complexes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/src/the-pro-etale-site-and-l-adic-complexes.md"
          },
          {
            "id": "frobenius-morphisms-and-their-action-on-cohomology",
            "title": "Frobenius morphisms and their action on cohomology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/frobenius-morphisms-and-their-action-on-cohomology.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/src/frobenius-morphisms-and-their-action-on-cohomology.md"
          },
          {
            "id": "traces-of-perfect-complexes-and-lefschetz-numbers",
            "title": "Traces of perfect complexes and Lefschetz numbers",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/traces-of-perfect-complexes-and-lefschetz-numbers.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/src/traces-of-perfect-complexes-and-lefschetz-numbers.md"
          },
          {
            "id": "cycle-classes-and-the-lefschetz-fixed-point-formula-for-curves",
            "title": "Cycle classes and the Lefschetz fixed-point formula for curves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/cycle-classes-and-the-lefschetz-fixed-point-formula-for-curves.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/src/cycle-classes-and-the-lefschetz-fixed-point-formula-for-curves.md"
          },
          {
            "id": "the-trace-formula-for-curves",
            "title": "The trace formula for curves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/the-trace-formula-for-curves.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/src/the-trace-formula-for-curves.md"
          },
          {
            "id": "the-trace-formula-in-all-dimensions",
            "title": "The trace formula in all dimensions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/the-trace-formula-in-all-dimensions.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/src/the-trace-formula-in-all-dimensions.md"
          },
          {
            "id": "l-functions-rationality-and-the-functional-equation",
            "title": "L-functions, rationality and the functional equation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/l-functions-rationality-and-the-functional-equation.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/src/l-functions-rationality-and-the-functional-equation.md"
          },
          {
            "id": "lefschetz-pencils-and-vanishing-cycles",
            "title": "Lefschetz pencils and vanishing cycles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/lefschetz-pencils-and-vanishing-cycles.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/src/lefschetz-pencils-and-vanishing-cycles.md"
          },
          {
            "id": "the-fundamental-estimate",
            "title": "The fundamental estimate",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/the-fundamental-estimate.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/src/the-fundamental-estimate.md"
          },
          {
            "id": "the-riemann-hypothesis-over-finite-fields",
            "title": "The Riemann hypothesis over finite fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/the-riemann-hypothesis-over-finite-fields.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LTF/src/the-riemann-hypothesis-over-finite-fields.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "GL-DMOD",
        "kind": "advanced",
        "title": {
          "en": "D-modules"
        },
        "summary": "Algebraic differential operators and flat connections; characteristic varieties and holonomicity; inverse and direct images, duality and minimal extensions; regular singularities, Riemann–Hilbert, localization, stacks, crystals and Fourier transformation.",
        "subject": "sheaves-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI). Independent AI review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Independent lesson text, proofs, original examples and exercises.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "differential-operators-and-the-weyl-algebra",
            "title": "Differential operators and the Weyl algebra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/differential-operators-and-the-weyl-algebra.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/differential-operators-and-the-weyl-algebra.md"
          },
          {
            "id": "d-modules-flat-connections-and-local-systems",
            "title": "D-modules, flat connections and local systems",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/d-modules-flat-connections-and-local-systems.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/d-modules-flat-connections-and-local-systems.md"
          },
          {
            "id": "good-filtrations-and-the-characteristic-variety",
            "title": "Good filtrations and the characteristic variety",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/good-filtrations-and-the-characteristic-variety.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/good-filtrations-and-the-characteristic-variety.md"
          },
          {
            "id": "the-bernstein-filtration-and-holonomic-modules",
            "title": "The Bernstein filtration and holonomic modules over the Weyl algebra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/the-bernstein-filtration-and-holonomic-modules.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/the-bernstein-filtration-and-holonomic-modules.md"
          },
          {
            "id": "bernstein-sato-polynomials",
            "title": "Bernstein-Sato polynomials",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/bernstein-sato-polynomials.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/bernstein-sato-polynomials.md"
          },
          {
            "id": "holonomic-d-modules-and-duality",
            "title": "Holonomic D-modules and duality",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/holonomic-d-modules-and-duality.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/holonomic-d-modules-and-duality.md"
          },
          {
            "id": "inverse-images",
            "title": "Inverse images",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/inverse-images.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/inverse-images.md"
          },
          {
            "id": "direct-images-and-the-relative-de-rham-complex",
            "title": "Direct images and the relative de Rham complex",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/direct-images-and-the-relative-de-rham-complex.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/direct-images-and-the-relative-de-rham-complex.md"
          },
          {
            "id": "kashiwaras-equivalence-and-singular-spaces",
            "title": "Kashiwara's equivalence and D-modules on singular spaces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/kashiwaras-equivalence-and-singular-spaces.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/kashiwaras-equivalence-and-singular-spaces.md"
          },
          {
            "id": "adjunctions-base-change-and-the-projection-formula",
            "title": "Adjunctions, base change and the projection formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/adjunctions-base-change-and-the-projection-formula.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/adjunctions-base-change-and-the-projection-formula.md"
          },
          {
            "id": "preservation-of-holonomicity-and-minimal-extensions",
            "title": "Preservation of holonomicity and minimal extensions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/preservation-of-holonomicity-and-minimal-extensions.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/preservation-of-holonomicity-and-minimal-extensions.md"
          },
          {
            "id": "the-de-rham-functor",
            "title": "The de Rham functor",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/the-de-rham-functor.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/the-de-rham-functor.md"
          },
          {
            "id": "regular-singularities",
            "title": "Regular singularities",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/regular-singularities.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/regular-singularities.md"
          },
          {
            "id": "the-riemann-hilbert-correspondence",
            "title": "The Riemann-Hilbert correspondence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/the-riemann-hilbert-correspondence.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/the-riemann-hilbert-correspondence.md"
          },
          {
            "id": "equivariant-and-twisted-d-modules",
            "title": "Equivariant and twisted D-modules",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/equivariant-and-twisted-d-modules.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/equivariant-and-twisted-d-modules.md"
          },
          {
            "id": "beilinson-bernstein-localization",
            "title": "Beilinson-Bernstein localization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/beilinson-bernstein-localization.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/beilinson-bernstein-localization.md"
          },
          {
            "id": "stacks-ind-schemes-and-the-de-rham-prestack",
            "title": "D-modules on stacks, ind-schemes and the de Rham prestack",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/stacks-ind-schemes-and-the-de-rham-prestack.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/stacks-ind-schemes-and-the-de-rham-prestack.md"
          },
          {
            "id": "the-fourier-transform-of-d-modules",
            "title": "The Fourier transform of D-modules",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/the-fourier-transform-of-d-modules.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-DMOD/src/the-fourier-transform-of-d-modules.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "GL-PERV",
        "kind": "advanced",
        "title": {
          "en": "Perverse sheaves and intersection cohomology"
        },
        "summary": "Constructible complexes, recollement and perverse sheaves, intersection complexes, affine vanishing, cycles, weights, decomposition, semismall maps, Springer theory, stacks, and trace functions.",
        "subject": "sheaves-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
        "status": "draft",
        "status_note": "Self-checked drafts by GPT-6.1 Sol. Independent checking is pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original course prose, proofs, examples and exercises. Linked source works retain their own rights.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "GL-PERV-01",
            "title": "Constructible complexes on algebraic varieties",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/"
          },
          {
            "id": "GL-PERV-02",
            "title": "Gluing t-structures",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/src/gluing-t-structures.md"
          },
          {
            "id": "GL-PERV-03",
            "title": "The perverse t-structure",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/src/the-perverse-t-structure.md"
          },
          {
            "id": "GL-PERV-04",
            "title": "Intermediate extensions and intersection complexes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/src/intermediate-extensions-and-intersection-complexes.md"
          },
          {
            "id": "GL-PERV-05",
            "title": "Affine morphisms, Artin vanishing and perverse cohomology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/src/affine-morphisms-artin-vanishing-and-perverse-cohomology.md"
          },
          {
            "id": "GL-PERV-06",
            "title": "Nearby and vanishing cycles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/"
          },
          {
            "id": "GL-PERV-07",
            "title": "Weights, purity and semisimplicity over finite fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/src/weights-purity-and-semisimplicity-over-finite-fields.md"
          },
          {
            "id": "GL-PERV-08",
            "title": "The decomposition theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/src/the-decomposition-theorem.md"
          },
          {
            "id": "GL-PERV-09",
            "title": "Semismall maps and small resolutions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/src/semismall-maps-and-small-resolutions.md"
          },
          {
            "id": "GL-PERV-10",
            "title": "Springer theory",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/src/springer-theory.md"
          },
          {
            "id": "GL-PERV-11",
            "title": "Equivariant perverse sheaves and perverse sheaves on stacks",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/src/equivariant-perverse-sheaves-and-perverse-sheaves-on-stacks.md"
          },
          {
            "id": "GL-PERV-12",
            "title": "Perverse sheaves, D-modules and the function-sheaf dictionary",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-PERV/src/perverse-sheaves-d-modules-and-the-function-sheaf-dictionary.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AG-DFG",
        "kind": "advanced",
        "title": {
          "en": "Descent and the étale fundamental group"
        },
        "summary": "Coherent pullbacks and gluing, faithfully flat descent, Galois categories, finite etale covers, proper families, specialization and tame ramification, followed by comparison over the complex numbers.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI).",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored lesson text and reader assets created for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "AG-DFG-01",
            "title": "Fibred categories and descent data",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/src/fibred-categories-and-descent-data.md"
          },
          {
            "id": "AG-DFG-02",
            "title": "Faithfully flat descent",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/src/faithfully-flat-descent.md"
          },
          {
            "id": "AG-DFG-03",
            "title": "Descending properties of schemes and morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/AG-DFG-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/src/descending-properties.md"
          },
          {
            "id": "AG-DFG-04",
            "title": "Galois categories",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/src/galois-categories.md"
          },
          {
            "id": "AG-DFG-05",
            "title": "The étale fundamental group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/src/etale-fundamental-group.md"
          },
          {
            "id": "AG-DFG-06",
            "title": "Fundamental groups of proper schemes and the homotopy exact sequence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/src/proper-fundamental-groups.md"
          },
          {
            "id": "AG-DFG-07",
            "title": "Specialization maps and tame ramification",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/src/specialization-and-tame-ramification.md"
          },
          {
            "id": "AG-DFG-08",
            "title": "Comparison with the topological fundamental group over the complex numbers",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-DFG/src/comparison-with-topology.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AG-HP",
        "kind": "advanced",
        "title": {
          "en": "Hilbert and Picard schemes, deformations and representability"
        },
        "summary": "Parameter spaces for families of subschemes, sheaves and line bundles, with their deformation theory and representability proofs.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI).",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently written course text.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "representable-functors-and-the-functor-of-points",
            "title": "Representable functors and the functor of points",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/representable-functors-and-the-functor-of-points.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/src/representable-functors-and-the-functor-of-points.md"
          },
          {
            "id": "grassmannians",
            "title": "Grassmannians",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/grassmannians.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/src/grassmannians.md"
          },
          {
            "id": "regularity-and-bounded-families",
            "title": "Castelnuovo–Mumford regularity and boundedness",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/regularity-and-bounded-families.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/src/regularity-and-bounded-families.md"
          },
          {
            "id": "flattening-stratifications",
            "title": "Flattening stratifications",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/flattening-stratifications.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/src/flattening-stratifications.md"
          },
          {
            "id": "hilbert-and-quot-schemes",
            "title": "Hilbert and Quot schemes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/hilbert-and-quot-schemes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/src/hilbert-and-quot-schemes.md"
          },
          {
            "id": "formal-moduli-and-schlessingers-theorem",
            "title": "Formal moduli and Schlessinger's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/formal-moduli-and-schlessingers-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/src/formal-moduli-and-schlessingers-theorem.md"
          },
          {
            "id": "deformations-of-rings-and-schemes-and-the-naive-cotangent-complex",
            "title": "Deformations of rings and schemes and the naive cotangent complex",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/deformations-of-rings-and-schemes-and-the-naive-cotangent-complex.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/src/deformations-of-rings-and-schemes-and-the-naive-cotangent-complex.md"
          },
          {
            "id": "tangent-spaces-and-obstructions-for-hilbert-and-quot-schemes",
            "title": "Tangent spaces and obstructions for Hilbert and Quot schemes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/tangent-spaces-and-obstructions-for-hilbert-and-quot-schemes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/src/tangent-spaces-and-obstructions-for-hilbert-and-quot-schemes.md"
          },
          {
            "id": "the-picard-functor-and-the-picard-scheme-of-a-curve",
            "title": "The Picard functor and the Picard scheme of a curve",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/the-picard-functor-and-the-picard-scheme-of-a-curve.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/src/the-picard-functor-and-the-picard-scheme-of-a-curve.md"
          },
          {
            "id": "relative-divisors-and-the-existence-of-the-picard-scheme",
            "title": "Relative divisors and the existence of the Picard scheme",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/relative-divisors-and-the-existence-of-the-picard-scheme.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/src/relative-divisors-and-the-existence-of-the-picard-scheme.md"
          },
          {
            "id": "the-structure-of-the-picard-scheme",
            "title": "The structure of the Picard scheme",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/the-structure-of-the-picard-scheme.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/src/the-structure-of-the-picard-scheme.md"
          },
          {
            "id": "the-cotangent-complex",
            "title": "The cotangent complex",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/the-cotangent-complex.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-HP/src/the-cotangent-complex.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "GL-GLC",
        "kind": "advanced",
        "title": {
          "en": "The geometric Langlands conjecture"
        },
        "summary": "Bundles and Hecke correspondences, geometric class field theory, spectral categories, and the proof of the unramified geometric Langlands conjecture.",
        "subject": "arithmetic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/",
        "status": "draft",
        "status_note": "Self-checked by its author. Independent review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently written lesson text. Bibliographic citations identify external works.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "GL-GLC-01",
            "title": "From automorphic functions to automorphic sheaves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/GL-GLC-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/src/from-automorphic-functions-to-automorphic-sheaves.md"
          },
          {
            "id": "GL-GLC-02",
            "title": "The moduli stack of bundles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/GL-GLC-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/src/the-moduli-stack-of-bundles.md"
          },
          {
            "id": "GL-GLC-03",
            "title": "Sheaves and D-modules on Bun_G",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/GL-GLC-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/src/sheaves-and-d-modules-on-bun-g.md"
          },
          {
            "id": "GL-GLC-04",
            "title": "Hecke functors and Hecke eigensheaves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/GL-GLC-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/src/hecke-functors-and-hecke-eigensheaves.md"
          },
          {
            "id": "GL-GLC-05",
            "title": "Geometric class field theory",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/GL-GLC-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/src/geometric-class-field-theory.md"
          },
          {
            "id": "GL-GLC-06",
            "title": "The GL_1 case as an equivalence of categories",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/GL-GLC-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-GLC/src/the-gl-1-case-as-an-equivalence-of-categories.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "LG-GAL",
        "kind": "advanced",
        "title": {
          "en": "Galois representations"
        },
        "summary": "Galois representations through Frobenius, elliptic-curve Tate modules, Weil–Deligne theory and modular forms.",
        "subject": "arithmetic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/",
        "status": "draft",
        "status_note": "Author-self-checked drafts; independent full-course review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored lesson text, proof exposition, examples and exercises.",
          "exceptions": [
            "Linked references and third-party mathematical rendering assets retain their own licences."
          ]
        },
        "lessons": [
          {
            "id": "profinite-groups-and-adic-representations",
            "title": "Profinite groups and ℓ-adic representations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/profinite-groups-and-adic-representations.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "frobenius-elements-and-determination-by-traces",
            "title": "Frobenius elements and determination by traces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/frobenius-elements-and-determination-by-traces.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "the-adic-tate-module-of-an-elliptic-curve",
            "title": "The ℓ-adic Tate module of an elliptic curve",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/the-adic-tate-module-of-an-elliptic-curve.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "representations-of-weil-groups",
            "title": "Representations of Weil groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/representations-of-weil-groups.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "conductors-of-weil-group-representations",
            "title": "Conductors of Weil-group representations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/conductors-of-weil-group-representations.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "local-l-factors-and-epsilon-factors",
            "title": "Local L-factors and epsilon factors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/local-l-factors-and-epsilon-factors.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "weil-deligne-representations-and-monodromy",
            "title": "Weil–Deligne representations and Grothendieck’s monodromy theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/weil-deligne-representations-and-monodromy.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "elliptic-curves-over-local-fields",
            "title": "Elliptic curves over local fields and their Weil–Deligne representations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/elliptic-curves-over-local-fields.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "compatible-systems-and-global-l-functions",
            "title": "Compatible systems and global L-functions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/compatible-systems-and-global-l-functions.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "modular-curves-and-the-eichler-shimura-congruence",
            "title": "Modular curves over Q and the Eichler–Shimura congruence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/modular-curves-and-the-eichler-shimura-congruence.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "galois-representations-of-weight-two-newforms",
            "title": "Galois representations of weight-two newforms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/galois-representations-of-weight-two-newforms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "deligne-construction-in-higher-weight",
            "title": "Deligne's construction in higher weight and the Ramanujan–Petersson bound",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/deligne-construction-in-higher-weight.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "weight-one-the-theorem-of-deligne-and-serre",
            "title": "Weight one: the theorem of Deligne and Serre",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/weight-one-the-theorem-of-deligne-and-serre.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "p-adic-hodge-theory-and-the-fontaine-mazur-conjecture",
            "title": "p-adic Hodge theory and the Fontaine–Mazur conjecture",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/p-adic-hodge-theory-and-the-fontaine-mazur-conjecture.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          },
          {
            "id": "residual-representations-and-serre-modularity",
            "title": "Residual representations and Serre's modularity theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/residual-representations-and-serre-modularity.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GAL/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "ag-etale-cohomology",
        "kind": "advanced",
        "title": {
          "en": "Sites, topoi and étale cohomology"
        },
        "summary": "Sites, sheaves, topoi and their points; cohomology on sites and hypercoverings; the étale topology, Galois cohomology and Brauer groups; curves, constructible sheaves, base change, compact support, cohomological dimension, Künneth, duality and comparison with singular cohomology.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI). Independent AI review is pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The original lesson text, proofs, examples and exercises written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "sites-and-sheaves",
            "title": "Sites and sheaves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/sites-and-sheaves.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/sites-and-sheaves.md"
          },
          {
            "id": "topoi-morphisms-and-points",
            "title": "Topoi, morphisms and points",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/topoi-morphisms-and-points.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/topoi-morphisms-and-points.md"
          },
          {
            "id": "cohomology-on-sites",
            "title": "Cohomology on sites",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/cohomology-on-sites.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/cohomology-on-sites.md"
          },
          {
            "id": "hypercoverings",
            "title": "Hypercoverings",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/hypercoverings.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/hypercoverings.md"
          },
          {
            "id": "topologies-on-schemes",
            "title": "Topologies on schemes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/topologies-on-schemes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/topologies-on-schemes.md"
          },
          {
            "id": "the-etale-site-and-its-points",
            "title": "The étale site and its points",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/the-etale-site-and-its-points.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/the-etale-site-and-its-points.md"
          },
          {
            "id": "pushforward-pullback-and-finite-morphisms",
            "title": "Pushforward, pullback and finite morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/pushforward-pullback-and-finite-morphisms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/pushforward-pullback-and-finite-morphisms.md"
          },
          {
            "id": "galois-cohomology-and-the-etale-cohomology-of-a-field",
            "title": "Galois cohomology and the étale cohomology of a field",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/galois-cohomology-and-the-etale-cohomology-of-a-field.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/galois-cohomology-and-the-etale-cohomology-of-a-field.md"
          },
          {
            "id": "brauer-groups-and-tsen-s-theorem",
            "title": "Brauer groups and Tsen's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/brauer-groups-and-tsen-s-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/brauer-groups-and-tsen-s-theorem.md"
          },
          {
            "id": "the-multiplicative-group-on-a-curve",
            "title": "The multiplicative group on a curve",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/the-multiplicative-group-on-a-curve.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/the-multiplicative-group-on-a-curve.md"
          },
          {
            "id": "constructible-sheaves-and-extension-by-zero",
            "title": "Constructible sheaves and extension by zero",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/constructible-sheaves-and-extension-by-zero.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/constructible-sheaves-and-extension-by-zero.md"
          },
          {
            "id": "torsion-sheaves-on-curves",
            "title": "Torsion sheaves on curves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/torsion-sheaves-on-curves.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/torsion-sheaves-on-curves.md"
          },
          {
            "id": "the-proper-base-change-theorem",
            "title": "The proper base change theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/the-proper-base-change-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/the-proper-base-change-theorem.md"
          },
          {
            "id": "cohomology-with-compact-support",
            "title": "Cohomology with compact support",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/cohomology-with-compact-support.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/cohomology-with-compact-support.md"
          },
          {
            "id": "smooth-base-change-and-local-acyclicity",
            "title": "Smooth base change and local acyclicity",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/smooth-base-change-and-local-acyclicity.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/smooth-base-change-and-local-acyclicity.md"
          },
          {
            "id": "cohomological-dimension-and-the-kunneth-formula",
            "title": "Cohomological dimension and the Künneth formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/cohomological-dimension-and-the-kunneth-formula.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/cohomological-dimension-and-the-kunneth-formula.md"
          },
          {
            "id": "poincare-duality-for-curves",
            "title": "Poincaré duality for curves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/poincare-duality-for-curves.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/poincare-duality-for-curves.md"
          },
          {
            "id": "poincare-duality-for-smooth-varieties",
            "title": "Poincaré duality for smooth varieties",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/poincare-duality-for-smooth-varieties.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/poincare-duality-for-smooth-varieties.md"
          },
          {
            "id": "comparison-with-singular-cohomology",
            "title": "Comparison with singular cohomology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/comparison-with-singular-cohomology.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ag-etale-cohomology/src/comparison-with-singular-cohomology.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NT-ADL",
        "kind": "advanced",
        "title": {
          "en": "Adèles, idèles and Tate's thesis"
        },
        "summary": "Restricted products and the adèle ring of a number field, idèles and the compact norm-one idèle class group, ray class groups, additive self-duality and Poisson summation, Tate zeta integrals and the functional equations of Hecke L-functions, and the local tree and spherical Hecke algebra of GL₂.",
        "subject": "arithmetic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/",
        "status": "draft",
        "status_note": "Self-checked by its author; independent review is pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The original lesson text written for this course.",
          "exceptions": [
            "External references and the mathematical rendering library retain their own licences."
          ]
        },
        "lessons": [
          {
            "id": "NT-ADL-01",
            "title": "Restricted products and profinite completions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/NT-ADL-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/src/NT-ADL-01.md"
          },
          {
            "id": "NT-ADL-02",
            "title": "The adèle ring of a number field",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/NT-ADL-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/src/NT-ADL-02.md"
          },
          {
            "id": "NT-ADL-03",
            "title": "Idèles and the idèle class group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/NT-ADL-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/src/NT-ADL-03.md"
          },
          {
            "id": "NT-ADL-04",
            "title": "Idèles, ideals and ray class groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/NT-ADL-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/src/NT-ADL-04.md"
          },
          {
            "id": "NT-ADL-05",
            "title": "Additive characters, self-dual measures and Poisson summation on the adèles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/NT-ADL-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/src/NT-ADL-05.md"
          },
          {
            "id": "NT-ADL-06",
            "title": "Quasi-characters and Hecke characters",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/NT-ADL-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/src/NT-ADL-06.md"
          },
          {
            "id": "NT-ADL-07",
            "title": "Tate's local theory at the finite places",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/NT-ADL-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/src/NT-ADL-07.md"
          },
          {
            "id": "NT-ADL-08",
            "title": "Tate's local theory at the infinite places",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/NT-ADL-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/src/NT-ADL-08.md"
          },
          {
            "id": "NT-ADL-09",
            "title": "Tate's global theory: continuation and functional equation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/NT-ADL-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/src/NT-ADL-09.md"
          },
          {
            "id": "NT-ADL-10",
            "title": "Hecke L-functions and the Dedekind zeta function",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/NT-ADL-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/src/NT-ADL-10.md"
          },
          {
            "id": "NT-ADL-11",
            "title": "Lattices over a local field: the tree of GL_2 and its decompositions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/NT-ADL-11.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/src/NT-ADL-11.md"
          },
          {
            "id": "NT-ADL-12",
            "title": "The spherical Hecke algebra of GL_2 and Hecke operators on lattices",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/NT-ADL-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ADL/src/NT-ADL-12.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NOE-ABS",
        "kind": "advanced",
        "title": {
          "en": "The abstract theory of ideals"
        },
        "summary": "Noether’s axiomatic ideal theory: global ideal invertibility and its converse, composition series, arbitrary orders and discriminants, three differents, tame normal integral bases, conductors and adjoints.",
        "subject": "arithmetic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/",
        "status": "draft",
        "status_note": "Self-checked by GPT-6.1 Sol. Independent full review accepted for 1 of six lessons; course-level review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Independently authored mathematical exposition, proofs, examples, exercises and solutions.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "NOE-ABS-01",
            "title": "Noether's axioms for Dedekind domains",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/NOE-ABS-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/"
          },
          {
            "id": "NOE-ABS-02",
            "title": "The converse and composition series",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/NOE-ABS-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/"
          },
          {
            "id": "NOE-ABS-03",
            "title": "Orders and the discriminant theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/NOE-ABS-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/"
          },
          {
            "id": "NOE-ABS-04",
            "title": "Three differents",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/NOE-ABS-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/"
          },
          {
            "id": "NOE-ABS-05",
            "title": "Normal integral bases in tame extensions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/NOE-ABS-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/"
          },
          {
            "id": "NOE-ABS-06",
            "title": "Algebraic functions of one variable: conductors and adjoints",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/NOE-ABS-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-ABS/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "LG-LLC",
        "kind": "advanced",
        "title": {
          "en": "The local Langlands correspondence for GL_n"
        },
        "summary": "The local Langlands correspondence for general linear groups over local fields: Weil–Deligne parameters, representation theory, local factors, the detailed two-dimensional cases, local–global compatibility and existence theorems.",
        "subject": "arithmetic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/",
        "status": "draft",
        "status_note": "All thirteen lessons are written and self-checked by the writing AI (OpenAI GPT-6.1 Sol in Codex, Ultra). Independent AI full-course review is pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored lesson text.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "LG-LLC-01",
            "title": "First cases: characters and the real correspondence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-01.md"
          },
          {
            "id": "LG-LLC-02",
            "title": "Irreducible representations of general linear groups over a local field",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-02.md"
          },
          {
            "id": "LG-LLC-03",
            "title": "Local factors of pairs and the rank-two converse theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-03.md"
          },
          {
            "id": "LG-LLC-04",
            "title": "The statement of the local Langlands correspondence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-04.md"
          },
          {
            "id": "LG-LLC-05",
            "title": "Monodromy blocks and the passage from supercuspidals to all parameters",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-05.md"
          },
          {
            "id": "LG-LLC-06",
            "title": "The rank-two correspondence: principal series, Steinberg twists and characters",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-06.md"
          },
          {
            "id": "LG-LLC-07",
            "title": "Two-dimensional Weil representations: induction and projective symmetry",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-07.md"
          },
          {
            "id": "LG-LLC-08",
            "title": "Dihedral supercuspidals, rectifiers and rank-two characterization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-08.md"
          },
          {
            "id": "LG-LLC-09",
            "title": "Modular forms, elliptic curves and local–global compatibility",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-09.md"
          },
          {
            "id": "LG-LLC-10",
            "title": "Jacquet–Langlands: elliptic classes and division-algebra representations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-10.md"
          },
          {
            "id": "LG-LLC-11",
            "title": "Harris–Taylor: geometry, numerical counting and existence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-11.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-11.md"
          },
          {
            "id": "LG-LLC-12",
            "title": "Other proofs, functoriality and the formal-degree formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-12.md"
          },
          {
            "id": "LG-LLC-13",
            "title": "Beyond general linear groups: parameters and packets",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/LG-LLC-13.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-LLC/src/LG-LLC-13.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "KT-CP",
        "kind": "advanced",
        "title": {
          "en": "Crossed products and groupoid C*-algebras"
        },
        "summary": "Full and reduced crossed products, conditional expectations and amenability, followed by duality, Morita equivalence, the Thom isomorphism, groupoid algebras and geometric index constructions.",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, OpenAI GPT-6.1 Sol in Codex at Ultra.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The original lesson text written for this course.",
          "exceptions": [
            "Linked sources and third-party mathematical rendering assets retain their own licences."
          ]
        },
        "lessons": [
          {
            "id": "KT-CP-01",
            "title": "C*-dynamical systems and full crossed products",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-01.md"
          },
          {
            "id": "KT-CP-02",
            "title": "Reduced crossed products and Fell's absorption principle",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-02.md"
          },
          {
            "id": "KT-CP-06",
            "title": "Pontryagin duality and the dual action",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-06.md"
          },
          {
            "id": "KT-CP-07",
            "title": "Induced algebras and Green's imprimitivity theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-07.md"
          },
          {
            "id": "KT-CP-08",
            "title": "Takai duality",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-08.md"
          },
          {
            "id": "KT-CP-09",
            "title": "Proper actions, free actions and the orbit space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-09.md"
          },
          {
            "id": "KT-CP-04",
            "title": "Amenability and the equality of full and reduced crossed products",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-04.md"
          },
          {
            "id": "KT-CP-03",
            "title": "Expectations, traces and ideals in crossed products",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-03.md"
          },
          {
            "id": "KT-CP-05",
            "title": "Crossed products by integers and real numbers: Fourier coordinates and mapping tori",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-05.md"
          },
          {
            "id": "KT-CP-10",
            "title": "The Connes–Thom isomorphism I: the Wiener–Hopf extension",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-10.md"
          },
          {
            "id": "KT-CP-11",
            "title": "The Connes–Thom isomorphism II: surjectivity, naturality and consequences",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-11.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-11.md"
          },
          {
            "id": "KT-CP-12",
            "title": "Exterior equivalence and Connes's construction of the Thom map",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-12.md"
          },
          {
            "id": "KT-CP-13",
            "title": "Locally compact groupoids and Haar systems",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-13.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-13.md"
          },
          {
            "id": "KT-CP-14",
            "title": "Groupoid C*-algebras: full and reduced",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-14.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-14.md"
          },
          {
            "id": "KT-CP-15",
            "title": "Equivalence of groupoids and Morita equivalence of their C*-algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-15.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-15.md"
          },
          {
            "id": "KT-CP-16",
            "title": "C*-algebras of foliations and their Morita equivalences",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-16.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-16.md"
          },
          {
            "id": "KT-CP-17",
            "title": "The tangent groupoid and deformation to the normal cone",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/KT-CP-17.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-CP/src/KT-CP-17.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "representations-of-compact-groups",
        "kind": "advanced",
        "title": {
          "en": "Representations of compact groups"
        },
        "summary": "Representation theory of compact groups, from unitary decomposition and Peter–Weyl to compact Lie groups, highest weights, Weyl formulas, Laplacians and homogeneous spaces.",
        "subject": "representation-theory",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
        "status": "draft",
        "status_note": "The published lessons were self-checked by their writing AI, GPT-6.1 Sol (OpenAI), in Codex at Ultra.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original lesson text and solutions written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "representations-of-compact-groups-unitarity-complete-reducibility-and-finite-dimension",
            "title": "Representations of compact groups: unitarity, complete reducibility and finite dimension",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          },
          {
            "id": "matrix-coefficients-and-the-peter-weyl-theorem",
            "title": "Matrix coefficients and the Peter–Weyl theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          },
          {
            "id": "fourier-analysis-and-class-functions-on-compact-groups",
            "title": "Fourier analysis and class functions on compact groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          },
          {
            "id": "su-2-so-3-and-spherical-harmonics",
            "title": "SU(2), SO(3) and spherical harmonics",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          },
          {
            "id": "compact-lie-groups-their-lie-algebras-and-the-adjoint-representation",
            "title": "Compact Lie groups, their Lie algebras and the adjoint representation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          },
          {
            "id": "tori-and-the-maximal-torus-theorem",
            "title": "Tori and the maximal torus theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          },
          {
            "id": "roots-and-the-weyl-group-of-a-compact-lie-group",
            "title": "Roots and the Weyl group of a compact Lie group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          },
          {
            "id": "the-weyl-integration-formula",
            "title": "The Weyl integration formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          },
          {
            "id": "unitary-groups-characters-dimensions-and-branching",
            "title": "Unitary groups: characters, dimensions and branching",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          },
          {
            "id": "weights-and-the-theorem-of-the-highest-weight",
            "title": "Weights and the theorem of the highest weight",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          },
          {
            "id": "the-weyl-character-formula-for-compact-connected-lie-groups",
            "title": "The Weyl character formula for compact connected Lie groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          },
          {
            "id": "casimir-operators-laplacians-and-tensor-products",
            "title": "Casimir operators, Laplacians and tensor products",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          },
          {
            "id": "homogeneous-spaces-induced-representations-and-gelfand-pairs",
            "title": "Homogeneous spaces, induced representations and Gelfand pairs",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/representations-of-compact-groups/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "RT-FIN",
        "kind": "advanced",
        "title": {
          "en": "Representations of finite groups"
        },
        "summary": "Finite-group representations and character theory, including induction, Clifford theory, Frobenius groups, Artin and Brauer induction, splitting fields, symmetric-group character formulas, Schur–Weyl duality and the full classification for GL₂ over every finite field.",
        "subject": "algebra",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/",
        "status": "draft",
        "status_note": "Self-checked by GPT-6.1 Sol, the AI that wrote it. Independent review is in progress.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored lesson text.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "representations-and-complete-reducibility",
            "title": "Representations and complete reducibility",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/representations-and-complete-reducibility.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-01.md"
          },
          {
            "id": "characters-and-the-orthogonality-relations",
            "title": "Characters and the orthogonality relations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/characters-and-the-orthogonality-relations.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-02.md"
          },
          {
            "id": "the-group-algebra-and-fourier-analysis-on-a-finite-group",
            "title": "The group algebra and Fourier analysis on a finite group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/the-group-algebra-and-fourier-analysis-on-a-finite-group.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-03.md"
          },
          {
            "id": "tensor-products-duals-and-real-representations",
            "title": "Tensor products, duals and real representations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/tensor-products-duals-and-real-representations.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-04.md"
          },
          {
            "id": "integrality-of-characters-and-burnsides-theorem",
            "title": "Integrality of characters and Burnside's p^a q^b theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/integrality-of-characters-and-burnsides-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-05.md"
          },
          {
            "id": "induced-representations-and-frobenius-reciprocity",
            "title": "Induced representations and Frobenius reciprocity",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/induced-representations-and-frobenius-reciprocity.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-06.md"
          },
          {
            "id": "mackey-theory-and-cliffords-theorem",
            "title": "Mackey theory and Clifford's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/mackey-theory-and-cliffords-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-07.md"
          },
          {
            "id": "groups-with-an-abelian-normal-subgroup-the-little-group-method",
            "title": "Groups with an abelian normal subgroup: the little-group method",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/groups-with-an-abelian-normal-subgroup-the-little-group-method.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-08.md"
          },
          {
            "id": "frobenius-groups-and-frobeniuss-theorem",
            "title": "Frobenius groups and Frobenius's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/frobenius-groups-and-frobeniuss-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-09.md"
          },
          {
            "id": "artins-induction-theorem-and-rationality",
            "title": "Artin's induction theorem and rationality",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/artins-induction-theorem-and-rationality.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-10.md"
          },
          {
            "id": "brauers-induction-theorem",
            "title": "Brauer's induction theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/brauers-induction-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-11.md"
          },
          {
            "id": "character-criteria-and-splitting-fields",
            "title": "Consequences of Brauer's theorem: characterization of characters and splitting fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/character-criteria-and-splitting-fields.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-12.md"
          },
          {
            "id": "young-tableaux-and-young-symmetrizers",
            "title": "The symmetric groups I: Young tableaux and Young symmetrizers",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/young-tableaux-and-young-symmetrizers.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-13.md"
          },
          {
            "id": "branching-jucys-murphy-elements-and-youngs-seminormal-form",
            "title": "The symmetric groups II: branching, Jucys–Murphy elements and Young's seminormal form",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/branching-jucys-murphy-elements-and-youngs-seminormal-form.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-14.md"
          },
          {
            "id": "characters-of-symmetric-groups-and-symmetric-functions",
            "title": "The symmetric groups III: characters and symmetric functions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/characters-of-symmetric-groups-and-symmetric-functions.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-15.md"
          },
          {
            "id": "schur-weyl-duality",
            "title": "Schur–Weyl duality",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/schur-weyl-duality.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-16.md"
          },
          {
            "id": "representations-of-gl2-over-finite-fields",
            "title": "Representations of GL₂ over finite fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/representations-of-gl2-over-finite-fields.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/src/RT-FIN-17.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AG-CA",
        "kind": "advanced",
        "title": {
          "en": "Commutative algebra for geometry"
        },
        "summary": "Rings and modules as tools for geometry: spectra, localization, finiteness, prime decomposition, flatness, dimension, depth, regularity, differentials, smoothness and henselian neighborhoods.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/",
        "status": "draft",
        "status_note": "Self-checked by GPT-6.1 Sol; independent AI review is pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The original course text, figures and figure-generation sources.",
          "exceptions": [
            "Linked source works retain their own licences; no source text or figures are reproduced."
          ]
        },
        "lessons": [
          {
            "id": "AG-CA-01",
            "title": "Spectra of rings",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/spectra-of-rings.md"
          },
          {
            "id": "AG-CA-02",
            "title": "Localization, local properties and support",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/localization-local-properties-and-support.md"
          },
          {
            "id": "AG-CA-03",
            "title": "Noetherian and Artinian rings",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/noetherian-and-artinian-rings.md"
          },
          {
            "id": "AG-CA-04",
            "title": "Associated primes and primary decomposition",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/associated-primes-and-primary-decomposition.md"
          },
          {
            "id": "AG-CA-05",
            "title": "Integral extensions: lying over, going up and going down",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/integral-extensions-lying-over-going-up-and-going-down.md"
          },
          {
            "id": "AG-CA-06",
            "title": "The Nullstellensatz and Jacobson rings",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/the-nullstellensatz-and-jacobson-rings.md"
          },
          {
            "id": "AG-CA-07",
            "title": "Tor and flat modules",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/tor-and-flat-modules.md"
          },
          {
            "id": "AG-CA-08",
            "title": "Faithful flatness and the local criterion for flatness",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/faithful-flatness-and-the-local-criterion-for-flatness.md"
          },
          {
            "id": "AG-CA-09",
            "title": "Krull dimension and Noether normalization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/krull-dimension-and-noether-normalization.md"
          },
          {
            "id": "AG-CA-10",
            "title": "Graded modules and Hilbert–Samuel functions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/graded-modules-and-hilbert-samuel-functions.md"
          },
          {
            "id": "AG-CA-11",
            "title": "Dimension theory of Noetherian local rings",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-11.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/dimension-theory-of-noetherian-local-rings.md"
          },
          {
            "id": "AG-CA-12",
            "title": "Regular sequences, depth and Cohen–Macaulay modules",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/regular-sequences-depth-and-cohen-macaulay-modules.md"
          },
          {
            "id": "AG-CA-13",
            "title": "Projective dimension and the Auslander–Buchsbaum formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-13.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/projective-dimension-and-the-auslander-buchsbaum-formula.md"
          },
          {
            "id": "AG-CA-14",
            "title": "Regular local rings",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-14.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/regular-local-rings.md"
          },
          {
            "id": "AG-CA-15",
            "title": "Discrete valuation rings, normal rings and Serre's criterion",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-15.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/discrete-valuation-rings-normal-rings-and-serres-criterion.md"
          },
          {
            "id": "AG-CA-16",
            "title": "Kähler differentials",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-16.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/kahler-differentials.md"
          },
          {
            "id": "AG-CA-17",
            "title": "Formally smooth, unramified and étale ring maps",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-17.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/formally-smooth-unramified-and-etale-ring-maps.md"
          },
          {
            "id": "AG-CA-18",
            "title": "Smooth algebras over a field and the Jacobian criterion",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-18.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/smooth-algebras-over-a-field-and-the-jacobian-criterion.md"
          },
          {
            "id": "AG-CA-19",
            "title": "Completion",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-19.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/completion.md"
          },
          {
            "id": "AG-CA-20",
            "title": "Henselian local rings and henselization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/AG-CA-20.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-CA/src/henselian-local-rings-and-henselization.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NT-LOC",
        "kind": "advanced",
        "title": {
          "en": "Local fields"
        },
        "summary": "Valuations and completions, p-adic lifting, extensions, locally compact fields, ramification, multiplicative groups and explicit local extensions.",
        "subject": "arithmetic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI; independent AI review is pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The original independently authored lesson text.",
          "exceptions": [
            "Cited works and third-party mathematical rendering assets retain their own rights."
          ]
        },
        "lessons": [
          {
            "id": "NT-LOC-01",
            "title": "Absolute values, valuations and Ostrowski's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/NT-LOC-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/src/NT-LOC-01.md"
          },
          {
            "id": "NT-LOC-02",
            "title": "Completions, the p-adic numbers and complete discretely valued fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/NT-LOC-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/src/NT-LOC-02.md"
          },
          {
            "id": "NT-LOC-03",
            "title": "Hensel's lemma, squares and roots of unity in p-adic fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/NT-LOC-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/src/NT-LOC-03.md"
          },
          {
            "id": "NT-LOC-04",
            "title": "Extensions of complete valued fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/NT-LOC-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/src/NT-LOC-04.md"
          },
          {
            "id": "NT-LOC-05",
            "title": "Places of number fields in extensions and the product formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/NT-LOC-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/src/NT-LOC-05.md"
          },
          {
            "id": "NT-LOC-06",
            "title": "Local fields: classification and Haar measure",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/NT-LOC-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/src/NT-LOC-06.md"
          },
          {
            "id": "NT-LOC-07",
            "title": "Unramified and totally ramified extensions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/NT-LOC-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/src/NT-LOC-07.md"
          },
          {
            "id": "NT-LOC-08",
            "title": "Tame ramification and the tame Galois group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/NT-LOC-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/src/NT-LOC-08.md"
          },
          {
            "id": "NT-LOC-09",
            "title": "Ramification groups and the different of a local extension",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/NT-LOC-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/src/NT-LOC-09.md"
          },
          {
            "id": "NT-LOC-10",
            "title": "Herbrand's function and the upper numbering",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/NT-LOC-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/src/NT-LOC-10.md"
          },
          {
            "id": "NT-LOC-11",
            "title": "The multiplicative group of a local field",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/NT-LOC-11.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/src/NT-LOC-11.md"
          },
          {
            "id": "NT-LOC-12",
            "title": "Cyclotomic, quadratic and Kummer extensions of local fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/NT-LOC-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-LOC/src/NT-LOC-12.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AG-LCL",
        "kind": "advanced",
        "title": {
          "en": "Local cohomology, Lefschetz theorems and purity"
        },
        "summary": "Local cohomology and duality, connectedness, formal geometry, Lefschetz comparison, Picard groups, purity and specialization. All eight lessons include proofs, examples and solved exercises.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/",
        "status": "draft",
        "status_note": "All eight lessons are written and self-checked by GPT-6.1 Sol, the AI that wrote them. Independent review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original course text and exercises.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "AG-LCL-01",
            "title": "Local cohomology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/src/local-cohomology.md"
          },
          {
            "id": "AG-LCL-02",
            "title": "Local duality and finiteness",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/src/local-duality-and-finiteness.md"
          },
          {
            "id": "AG-LCL-03",
            "title": "Cohomological dimension, vanishing and connectedness",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/src/cohomological-dimension-and-connectedness.md"
          },
          {
            "id": "AG-LCL-04",
            "title": "Formal geometry along a closed subscheme",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/src/formal-geometry.md"
          },
          {
            "id": "AG-LCL-05",
            "title": "Lefschetz theorems for finite étale covers",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/src/lefschetz-for-finite-etale-covers.md"
          },
          {
            "id": "AG-LCL-06",
            "title": "Picard groups and Grothendieck–Lefschetz",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/src/picard-groups-and-grothendieck-lefschetz.md"
          },
          {
            "id": "AG-LCL-07",
            "title": "Purity of the branch locus",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/src/purity-of-the-branch-locus.md"
          },
          {
            "id": "AG-LCL-08",
            "title": "Specialization and tame ramification",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-LCL/src/specialization-and-tame-ramification.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "automorphic-forms-and-representations-of-gl2",
        "kind": "advanced",
        "title": {
          "en": "Automorphic forms and representations of GL(2)"
        },
        "summary": "A course on how congruence conditions, Fourier coefficients and local representations fit together for GL(2). It develops the passage from classical modular forms to adelic representations, local and global Whittaker models and L-functions, newvectors, the cuspidal and Eisenstein spectra, and quaternionic forms and the trace formula.",
        "subject": "arithmetic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/",
        "status": "draft",
        "status_note": "Self-checked by its author. Independent review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original course prose, proofs, examples and exercises.",
          "exceptions": [
            "Linked references and mathematical rendering assets retain their own licences."
          ]
        },
        "lessons": [
          {
            "id": "adeles-for-gl2-and-strong-approximation",
            "title": "Adèles for GL₂ and strong approximation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/adeles-for-gl2-and-strong-approximation.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/adeles-for-gl2-and-strong-approximation.md"
          },
          {
            "id": "from-modular-forms-to-adelic-functions",
            "title": "From modular forms to adelic functions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/from-modular-forms-to-adelic-functions.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/from-modular-forms-to-adelic-functions.md"
          },
          {
            "id": "automorphic-forms-modules-and-hilbert-constituents",
            "title": "Automorphic forms, modules and Hilbert constituents",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/automorphic-forms-modules-and-hilbert-constituents.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/automorphic-forms-modules-and-hilbert-constituents.md"
          },
          {
            "id": "why-the-cuspidal-spectrum-is-discrete",
            "title": "Why the cuspidal spectrum is discrete",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/why-the-cuspidal-spectrum-is-discrete.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/why-the-cuspidal-spectrum-is-discrete.md"
          },
          {
            "id": "smooth-local-representations-and-the-hecke-module-dictionary",
            "title": "Smooth local representations and the Hecke-module dictionary",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/smooth-local-representations-and-the-hecke-module-dictionary.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/smooth-local-representations-and-the-hecke-module-dictionary.md"
          },
          {
            "id": "normalized-induction-and-jacquet-modules",
            "title": "Normalized induction and Jacquet modules",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/normalized-induction-and-jacquet-modules.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/normalized-induction-and-jacquet-modules.md"
          },
          {
            "id": "whittaker-models-kirillov-models-and-the-local-classification",
            "title": "Whittaker models, Kirillov models and the local classification",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/whittaker-models-kirillov-models-and-the-local-classification.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/whittaker-models-kirillov-models-and-the-local-classification.md"
          },
          {
            "id": "newvectors-conductors-and-the-passage-to-classical-newforms",
            "title": "Newvectors, conductors and the passage to classical newforms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/newvectors-conductors-and-the-passage-to-classical-newforms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/newvectors-conductors-and-the-passage-to-classical-newforms.md"
          },
          {
            "id": "local-l-factors-epsilon-factors-and-the-local-converse-theorem",
            "title": "Local L-factors, epsilon factors and the local converse theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/local-l-factors-epsilon-factors-and-the-local-converse-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/local-l-factors-epsilon-factors-and-the-local-converse-theorem.md"
          },
          {
            "id": "supercuspidal-representations-from-compact-induction",
            "title": "Supercuspidal representations from compact induction",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/supercuspidal-representations-from-compact-induction.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/supercuspidal-representations-from-compact-induction.md"
          },
          {
            "id": "real-and-complex-representations-weights-gamma-factors-and-classical-forms",
            "title": "Real and complex representations: weights, gamma factors and classical forms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/real-and-complex-representations-weights-gamma-factors-and-classical-forms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/real-and-complex-representations-weights-gamma-factors-and-classical-forms.md"
          },
          {
            "id": "restricted-tensor-products-and-the-tensor-product-theorem",
            "title": "Restricted tensor products and the tensor product theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/restricted-tensor-products-and-the-tensor-product-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/restricted-tensor-products-and-the-tensor-product-theorem.md"
          },
          {
            "id": "unramified-representations-of-gl2-and-satake-parameters",
            "title": "Unramified representations of GL₂(F) and Satake parameters",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/unramified-representations-of-gl2-and-satake-parameters.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/unramified-representations-of-gl2-and-satake-parameters.md"
          },
          {
            "id": "global-whittaker-functions-and-the-l-function-of-a-cuspidal-representation",
            "title": "Global Whittaker functions and the L-function of a cuspidal representation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/global-whittaker-functions-and-the-l-function-of-a-cuspidal-representation.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/global-whittaker-functions-and-the-l-function-of-a-cuspidal-representation.md"
          },
          {
            "id": "multiplicity-one-strong-multiplicity-one-and-the-converse-theorem",
            "title": "Multiplicity one, strong multiplicity one and the converse theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/multiplicity-one-strong-multiplicity-one-and-the-converse-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/multiplicity-one-strong-multiplicity-one-and-the-converse-theorem.md"
          },
          {
            "id": "eisenstein-series-on-gl2-and-the-continuous-spectrum",
            "title": "Eisenstein series on GL₂(A) and the continuous spectrum",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/eisenstein-series-on-gl2-and-the-continuous-spectrum.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/eisenstein-series-on-gl2-and-the-continuous-spectrum.md"
          },
          {
            "id": "quaternion-algebras-and-their-automorphic-forms",
            "title": "Quaternion algebras and their automorphic forms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/quaternion-algebras-and-their-automorphic-forms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/quaternion-algebras-and-their-automorphic-forms.md"
          },
          {
            "id": "the-trace-formula-for-a-compact-quotient",
            "title": "The trace formula for a compact quotient",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/the-trace-formula-for-a-compact-quotient.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/the-trace-formula-for-a-compact-quotient.md"
          },
          {
            "id": "the-jacquet-langlands-correspondence",
            "title": "The Jacquet–Langlands correspondence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/the-jacquet-langlands-correspondence.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/the-jacquet-langlands-correspondence.md"
          },
          {
            "id": "dihedral-forms-examples-and-the-ramanujan-conjecture-for-gl2",
            "title": "Dihedral forms, examples, and the Ramanujan conjecture for GL₂",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/dihedral-forms-examples-and-the-ramanujan-conjecture-for-gl2.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/automorphic-forms-and-representations-of-gl2/src/dihedral-forms-examples-and-the-ramanujan-conjecture-for-gl2.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "LIE-TG",
        "kind": "advanced",
        "title": {
          "en": "Lie's theory of transformation groups"
        },
        "summary": "Analytic local transformation groups, their infinitesimal generators and the three fundamental theorems; structure, homogeneous actions, differential invariants, contact equations, and the Riemann–Helmholtz space problem.",
        "subject": "differential-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/",
        "status": "draft",
        "status_note": "Drafts self-checked by the writing AI, GPT-6.1 Sol (OpenAI), in Codex at Ultra. Independent full-course AI review is pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored lesson text, exercises and original computed illustration; the selected Lie–Engel German passages are public domain.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "LIE-TG-01",
            "title": "Transformation groups and their parameters",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/LIE-TG-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/"
          },
          {
            "id": "LIE-TG-02",
            "title": "The fundamental differential equations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/LIE-TG-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/"
          },
          {
            "id": "LIE-TG-03",
            "title": "One-parameter groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/LIE-TG-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/"
          },
          {
            "id": "LIE-TG-04",
            "title": "Complete systems and invariants",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/LIE-TG-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/"
          },
          {
            "id": "LIE-TG-05",
            "title": "The second fundamental theorem and the group of parameters",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/LIE-TG-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/"
          },
          {
            "id": "LIE-TG-09",
            "title": "Prolongation, differential invariants and the projective group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/LIE-TG-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/"
          },
          {
            "id": "LIE-TG-06",
            "title": "The third fundamental theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/LIE-TG-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/"
          },
          {
            "id": "LIE-TG-07",
            "title": "The adjoint group, composition and isomorphism",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/LIE-TG-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/"
          },
          {
            "id": "LIE-TG-08",
            "title": "Transitivity and primitivity",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/LIE-TG-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/"
          },
          {
            "id": "LIE-TG-10",
            "title": "Contact transformations and first-order equations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/LIE-TG-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/"
          },
          {
            "id": "LIE-TG-11",
            "title": "Lie algebras of vector fields on the line and in the plane",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/LIE-TG-11.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/"
          },
          {
            "id": "LIE-TG-12",
            "title": "The Riemann-Helmholtz space problem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/LIE-TG-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LIE-TG/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AG-AS",
        "kind": "advanced",
        "title": {
          "en": "Algebraic spaces and stacks"
        },
        "summary": "Etale quotients and their geometry, stacks and gerbes, algebraicity criteria and moduli, stable curves, and simplicial models for higher stacks.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI (OpenAI GPT-6.1 Sol, Ultra). Independent AI review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original lesson text, proofs, examples and exercises.",
          "exceptions": [
            "MathJax rendering software and font files retain their upstream licences, including SIL OFL 1.1 font declarations; see the component notices on the Licensing page."
          ]
        },
        "lessons": [
          {
            "id": "AG-AS-01",
            "title": "Algebraic spaces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/src/algebraic-spaces.md"
          },
          {
            "id": "AG-AS-02",
            "title": "The bootstrap theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/src/bootstrap-theorem.md"
          },
          {
            "id": "AG-AS-03",
            "title": "Properties and morphisms of algebraic spaces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/src/properties-and-morphisms.md"
          },
          {
            "id": "AG-AS-04",
            "title": "Stacks in groupoids",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/src/stacks-in-groupoids.md"
          },
          {
            "id": "AG-AS-05",
            "title": "Algebraic stacks",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/src/algebraic-stacks.md"
          },
          {
            "id": "AG-AS-06",
            "title": "Quotient stacks and Deligne–Mumford stacks",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/src/quotient-and-dm-stacks.md"
          },
          {
            "id": "AG-AS-07",
            "title": "Artin's axioms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/src/artin-axioms.md"
          },
          {
            "id": "AG-AS-08",
            "title": "Moduli stacks are algebraic",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/src/moduli-stacks-are-algebraic.md"
          },
          {
            "id": "AG-AS-09",
            "title": "The stack of curves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/src/the-stack-of-curves.md"
          },
          {
            "id": "AG-AS-10",
            "title": "Stable reduction and properness",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/src/stable-reduction-and-properness.md"
          },
          {
            "id": "AG-AS-11",
            "title": "Simplicial sets, nerves and Kan complexes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/src/simplicial-sets-nerves-and-kan-complexes.md"
          },
          {
            "id": "AG-AS-12",
            "title": "Test categories and Grothendieck's homotopy programme",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-AS/src/test-categories-and-homotopy-programme.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "KT-OPK",
        "kind": "advanced",
        "title": {
          "en": "K-theory of C*-algebras"
        },
        "summary": "A course on K-theory of C*-algebras, from idempotents, vector bundles and projective modules through stabilization, K1, exact sequences, Bott periodicity, traces and crossed-product computations. All 23 lessons are available with worked examples and complete exercise solutions. Further proofs are being integrated into the course.",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/",
        "status": "draft",
        "status_note": "Self-checked by its author, GPT-6.1 Sol; independent review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored lesson text and course metadata.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "idempotents-projections-and-their-equivalences",
            "title": "Idempotents, projections and their equivalences",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/idempotents-projections-and-their-equivalences.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-01.md"
          },
          {
            "id": "vector-bundles-and-finitely-generated-projective-modules",
            "title": "Vector bundles and finitely generated projective modules",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/vector-bundles-and-finitely-generated-projective-modules.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-02.md"
          },
          {
            "id": "the-grothendieck-group-and-k0-of-a-unital-algebra",
            "title": "The Grothendieck group and K_0 of a unital algebra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/the-grothendieck-group-and-k0-of-a-unital-algebra.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-03.md"
          },
          {
            "id": "nonunital-algebras-unitization-relative-classes-and-half-exactness",
            "title": "Nonunital algebras: unitization, relative classes and half-exactness",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/nonunital-algebras-unitization-relative-classes-and-half-exactness.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-04.md"
          },
          {
            "id": "matrix-stability-stability-and-continuity-of-k0",
            "title": "Matrix stability, stability and continuity of K_0",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/matrix-stability-stability-and-continuity-of-k0.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-05.md"
          },
          {
            "id": "invertibles-unitaries-and-k1",
            "title": "Invertibles, unitaries and K_1",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/invertibles-unitaries-and-k1.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-06.md"
          },
          {
            "id": "the-index-map-and-the-exact-sequence-at-k0",
            "title": "The index map and the exact sequence at K_0",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/the-index-map-and-the-exact-sequence-at-k0.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-07.md"
          },
          {
            "id": "suspension-higher-k-groups-and-the-long-exact-sequence",
            "title": "Suspension, higher K-groups and the long exact sequence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/suspension-higher-k-groups-and-the-long-exact-sequence.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-08.md"
          },
          {
            "id": "toeplitz-operators-and-the-index-theorem-on-the-circle",
            "title": "Toeplitz operators and the index theorem on the circle",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/toeplitz-operators-and-the-index-theorem-on-the-circle.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-09.md"
          },
          {
            "id": "bott-periodicity",
            "title": "Bott periodicity",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/bott-periodicity.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-10.md"
          },
          {
            "id": "six-term-exact-sequence-and-exponential-map",
            "title": "The six-term exact sequence and the exponential map",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/six-term-exact-sequence-and-exponential-map.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-11.md"
          },
          {
            "id": "topological-k-theory-of-spaces-pairs-and-vector-bundles",
            "title": "Topological K-theory of spaces, pairs and vector bundles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/topological-k-theory-of-spaces-pairs-and-vector-bundles.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-12.md"
          },
          {
            "id": "traces-states-and-the-pairing-with-k0",
            "title": "Traces, states and the pairing with K-theory",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/traces-states-and-the-pairing-with-k0.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-13.md"
          },
          {
            "id": "determinants-of-traces-and-the-pairing-with-k1",
            "title": "Determinants of traces and the pairing with K_1",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/determinants-of-traces-and-the-pairing-with-k1.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-14.md"
          },
          {
            "id": "smooth-subalgebras-and-the-density-theorem",
            "title": "Smooth subalgebras and the density theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/smooth-subalgebras-and-the-density-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-15.md"
          },
          {
            "id": "inductive-limits-and-the-k-theory-of-af-and-at-algebras",
            "title": "Inductive limits and the K-theory of AF and AT algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/inductive-limits-and-the-k-theory-of-af-and-at-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-16.md"
          },
          {
            "id": "the-mapping-torus",
            "title": "The mapping torus",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/the-mapping-torus.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-17.md"
          },
          {
            "id": "the-pimsner-voiculescu-exact-sequence",
            "title": "The Pimsner–Voiculescu exact sequence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/the-pimsner-voiculescu-exact-sequence.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-18.md"
          },
          {
            "id": "traces-on-integer-crossed-products-and-their-k-theory-ranges",
            "title": "Traces on integer crossed products and their K-theory ranges",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/traces-on-integer-crossed-products-and-their-k-theory-ranges.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-19.md"
          },
          {
            "id": "irrational-rotation-algebras",
            "title": "Irrational rotation algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/irrational-rotation-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-20.md"
          },
          {
            "id": "commutative-and-noncommutative-tori",
            "title": "Commutative and noncommutative tori",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/commutative-and-noncommutative-tori.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-21.md"
          },
          {
            "id": "cuntz-algebras",
            "title": "Cuntz algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/cuntz-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-22.md"
          },
          {
            "id": "cuntz-krieger-algebras-minimal-systems-and-projectionless-algebras",
            "title": "Cuntz–Krieger algebras, minimal systems and projectionless algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/cuntz-krieger-algebras-minimal-systems-and-projectionless-algebras.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-OPK/src/KT-OPK-23.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "LG-MF",
        "kind": "advanced",
        "title": {
          "en": "Modular forms"
        },
        "summary": "A nineteen-lesson course on modular forms built from the geometry of the upper half-plane. It develops modular curves, holomorphic forms, Hecke operators and newforms, L-functions, theta series, cohomology and modular symbols, complex elliptic curves, non-holomorphic Eisenstein series and the Rankin–Selberg method, with proofs, computed examples, exercises and full solutions.",
        "subject": "arithmetic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/",
        "status": "draft",
        "status_note": "Self-checked by its author, GPT-6.1 Sol. Independent review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The original lesson text, coordinate diagrams and reproducible figure programs written for this course.",
          "exceptions": [
            "Rendering libraries and font glyphs retain their own licences."
          ]
        },
        "lessons": [
          {
            "id": "LG-MF-01",
            "title": "The upper half-plane and the modular group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-02",
            "title": "Congruence subgroups, cusps and elliptic points",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-03",
            "title": "Modular curves and their genus",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-04",
            "title": "Modular forms, lattice functions and Eisenstein series",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-05",
            "title": "The valence formula and the ring of modular forms of level one",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-06",
            "title": "Dimension formulas for congruence subgroups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-07",
            "title": "The Petersson inner product and Poincaré series",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-08",
            "title": "Hecke operators of level one",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-09",
            "title": "Hecke operators for Γ_0(N) and Γ_1(N)",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-10",
            "title": "Oldforms, newforms and the theory of Atkin, Lehner and Li",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-11",
            "title": "The L-function of a cusp form",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-11.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-12",
            "title": "Twists, level N and Hecke's converse theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-13",
            "title": "Theta functions and sums of squares",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-13.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-14",
            "title": "Theta series of lattices",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-14.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-15",
            "title": "Group cohomology of Γ and the Eichler–Shimura isomorphism",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-15.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-16",
            "title": "Modular symbols and the algebraicity of Hecke eigenvalues",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-16.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-17",
            "title": "Complex tori, elliptic curves and the moduli interpretation of modular curves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-17.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-18",
            "title": "Non-holomorphic Eisenstein series and Maass forms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-18.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          },
          {
            "id": "LG-MF-19",
            "title": "The Rankin–Selberg method",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/LG-MF-19.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-MF/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "LG-GLOB",
        "kind": "advanced",
        "title": {
          "en": "Global Langlands conjectures and functoriality"
        },
        "summary": "L-groups and unramified parameters, automorphic L-functions, functoriality and reciprocity, modularity and its consequences, and the function-field correspondence.",
        "subject": "number-theory",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/",
        "status": "draft",
        "status_note": "Self-checked by GPT-6.1 Sol; independent full-course review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original lesson text independently written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "LG-GLOB-01",
            "title": "Reductive groups, root data and the L-group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/LG-GLOB-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/"
          },
          {
            "id": "LG-GLOB-02",
            "title": "The Satake isomorphism for unramified groups and unramified L-factors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/LG-GLOB-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/"
          },
          {
            "id": "LG-GLOB-03",
            "title": "Automorphic representations and automorphic L-functions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/LG-GLOB-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/"
          },
          {
            "id": "LG-GLOB-04",
            "title": "L-functions for GL_n: Godement–Jacquet and Rankin–Selberg",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/LG-GLOB-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/"
          },
          {
            "id": "LG-GLOB-05",
            "title": "The principle of functoriality",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/LG-GLOB-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/"
          },
          {
            "id": "LG-GLOB-14",
            "title": "The function-field case: Drinfeld and L. Lafforgue",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/LG-GLOB-14.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/LG-GLOB/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NOE-HYP",
        "kind": "advanced",
        "title": {
          "en": "Hypercomplex systems and representations"
        },
        "summary": "Operator groups and semisimple rings, representations and characters, central simple algebras, crossed products, Galois descent and the principal genus theorem.",
        "subject": "algebra",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI); independent full-course AI review pending.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored lesson text.",
          "exceptions": [
            "Linked works and mathematical rendering assets retain their own licences."
          ]
        },
        "lessons": [
          {
            "id": "NOE-HYP-01",
            "title": "Groups with operators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/NOE-HYP-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/"
          },
          {
            "id": "NOE-HYP-02",
            "title": "Semisimple rings and Wedderburn's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/NOE-HYP-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/"
          },
          {
            "id": "NOE-HYP-03",
            "title": "Representations, characters and the group determinant",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/NOE-HYP-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/"
          },
          {
            "id": "NOE-HYP-04",
            "title": "Central simple algebras and the Brauer group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/NOE-HYP-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/"
          },
          {
            "id": "NOE-HYP-05",
            "title": "Crossed products and factor systems",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/NOE-HYP-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/"
          },
          {
            "id": "NOE-HYP-06",
            "title": "Hilbert 90 in Noether's form and Galois descent",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/NOE-HYP-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/"
          },
          {
            "id": "NOE-HYP-07",
            "title": "The principal genus theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/NOE-HYP-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-HYP/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "RT-LIE",
        "kind": "advanced",
        "title": {
          "en": "Semisimple Lie algebras"
        },
        "summary": "A complete eighteen-lesson course on semisimple Lie algebras and their representations, with proofs, worked examples and solved exercises. It develops general Lie algebras, complete reducibility, roots and classification, classical and exceptional models, PBW, highest-weight theory, central characters, character and multiplicity formulas, compact real forms, category O and BGG reciprocity, and states the Kazhdan–Lusztig theorem.",
        "subject": "representation-theory",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The original lesson text, proofs, examples and exercises written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "RT-LIE-01",
            "title": "Lie algebras: definitions, examples and first constructions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-01.md"
          },
          {
            "id": "RT-LIE-02",
            "title": "Nilpotent and solvable Lie algebras: Engel's and Lie's theorems",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-02.md"
          },
          {
            "id": "RT-LIE-03",
            "title": "The Killing form and Cartan's criteria",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-03.md"
          },
          {
            "id": "RT-LIE-04",
            "title": "Complete reducibility: Casimir elements and Weyl's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-04.md"
          },
          {
            "id": "RT-LIE-05",
            "title": "Representations of sl(2)",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-05.md"
          },
          {
            "id": "RT-LIE-06",
            "title": "Low-degree cohomology, Whitehead's lemmas and the Levi decomposition",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-06.md"
          },
          {
            "id": "RT-LIE-07",
            "title": "The root space decomposition of a semisimple Lie algebra",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-07.md"
          },
          {
            "id": "RT-LIE-08",
            "title": "Root systems and their Weyl groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-08.md"
          },
          {
            "id": "RT-LIE-09",
            "title": "Cartan matrices, Dynkin diagrams and the classification of root systems",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-09.md"
          },
          {
            "id": "RT-LIE-10",
            "title": "Cartan subalgebras and their conjugacy",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-10.md"
          },
          {
            "id": "RT-LIE-11",
            "title": "The isomorphism theorem and Serre's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-11.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-11.md"
          },
          {
            "id": "RT-LIE-12",
            "title": "The simple Lie algebras: classical models and the exceptional algebras",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-12.md"
          },
          {
            "id": "RT-LIE-13",
            "title": "The universal enveloping algebra and the Poincaré–Birkhoff–Witt theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-13.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-13.md"
          },
          {
            "id": "RT-LIE-14",
            "title": "Weights, Verma modules and the theorem of the highest weight",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-14.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-14.md"
          },
          {
            "id": "RT-LIE-15",
            "title": "The centre of the enveloping algebra and Harish-Chandra's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-15.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-15.md"
          },
          {
            "id": "RT-LIE-16",
            "title": "Weyl's character formula and the multiplicity formulas",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-16.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-16.md"
          },
          {
            "id": "RT-LIE-17",
            "title": "Compact real forms and Weyl's unitary trick",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-17.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-17.md"
          },
          {
            "id": "RT-LIE-18",
            "title": "Category O and the Kazhdan–Lusztig conjecture",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/RT-LIE-18.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-LIE/src/RT-LIE-18.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "SH-03",
        "kind": "advanced",
        "title": {
          "en": "Constructible and perverse sheaves"
        },
        "summary": "Microlocal kernels and contact transformations, pure and simple sheaves, constructibility and stratifications, integral characteristic cycles, Euler indices, Morse inequalities, conormal orientations, Lefschetz traces of constructible correspondences, local cutoffs, tangent specialization, expanding and shrinking localization, complex fixed-point traces, constructible functions, Euler integration, homogeneous Fourier calculus, constructible specialization, the integral characteristic-cycle correspondence, Euler convolution, and compact convex inverses.",
        "subject": "sheaves-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
        "status": "draft",
        "status_note": "92 lessons and 573 fully solved graded exercises. Author self-checked drafts; full course and prerequisite closure remain unfinished. No independent review yet.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "New original lesson text, reader styling and drawings. Referenced works and rendered font glyphs retain their own rights.",
          "exceptions": [
            "Rendered font glyphs retain the font notices already published in this repository."
          ]
        },
        "lessons": [
          {
            "id": "kernels-and-cotangent-correspondences",
            "title": "Sheaf kernels and cotangent correspondences",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "constructible-gluing-on-an-interval",
            "title": "Constructible gluing on an interval",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "directional-tests-at-a-constructible-boundary",
            "title": "Directional tests at a constructible boundary",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "constructible-sheaves-on-a-triangulation",
            "title": "Constructible sheaves on a triangulation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "kernels-that-preserve-chosen-cotangent-directions",
            "title": "Kernels that preserve chosen cotangent directions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "adjoints-of-localized-sheaf-kernels",
            "title": "Adjoints of localized sheaf kernels",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "dual-kernels-and-an-unchanged-parameter",
            "title": "Dual kernels and an unchanged parameter",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "directional-morphisms-through-a-sheaf-kernel",
            "title": "Directional morphisms through a sheaf kernel",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "when-a-kernel-quantizes-a-contact-transformation",
            "title": "When a kernel quantizes a contact transformation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "real-and-complex-ball-kernels",
            "title": "Real and complex ball kernels",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/real-and-complex-ball-kernels.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/real-and-complex-ball-kernels.md"
          },
          {
            "id": "local-existence-of-contact-kernel-equivalences",
            "title": "Local existence of contact kernel equivalences",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/local-existence-of-contact-kernel-equivalences.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/local-existence-of-contact-kernel-equivalences.md"
          },
          {
            "id": "microlocal-composition-at-prescribed-covectors",
            "title": "Microlocal composition at prescribed covectors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "coefficients-in-a-quantization-of-the-identity",
            "title": "Coefficients in a quantization of the identity",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/coefficients-in-a-quantization-of-the-identity.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/coefficients-in-a-quantization-of-the-identity.md"
          },
          {
            "id": "normal-forms-and-the-shift-of-a-submanifold-transform",
            "title": "Normal forms and the shift of a submanifold transform",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/normal-forms-and-the-shift-of-a-submanifold-transform.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/normal-forms-and-the-shift-of-a-submanifold-transform.md"
          },
          {
            "id": "composing-hypersurface-kernels-with-their-shifts",
            "title": "Composing hypersurface kernels with their shifts",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/composing-hypersurface-kernels-with-their-shifts.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/composing-hypersurface-kernels-with-their-shifts.md"
          },
          {
            "id": "pure-and-simple-sheaves-from-directional-tests",
            "title": "Pure and simple sheaves from directional tests",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "how-simple-sheaf-shifts-change-along-a-lagrangian",
            "title": "How simple sheaf shifts change along a Lagrangian",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/how-simple-sheaf-shifts-change-along-a-lagrangian.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/how-simple-sheaf-shifts-change-along-a-lagrangian.md"
          },
          {
            "id": "tensor-and-Hom-types-at-independent-covectors",
            "title": "Tensor and Hom types at independent covectors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/tensor-and-Hom-types-at-independent-covectors.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/tensor-and-Hom-types-at-independent-covectors.md"
          },
          {
            "id": "the-type-and-shift-of-a-transverse-kernel-composition",
            "title": "The type and shift of a transverse kernel composition",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/the-type-and-shift-of-a-transverse-kernel-composition.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/the-type-and-shift-of-a-transverse-kernel-composition.md"
          },
          {
            "id": "direct-and-inverse-images-of-a-sheaf-type",
            "title": "Direct and inverse images of a sheaf type",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/direct-and-inverse-images-of-a-sheaf-type.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/direct-and-inverse-images-of-a-sheaf-type.md"
          },
          {
            "id": "projective-incidence-as-a-contact-kernel",
            "title": "Projective incidence as a contact kernel",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/projective-incidence-as-a-contact-kernel.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/projective-incidence-as-a-contact-kernel.md"
          },
          {
            "id": "the-partial-legendre-kernel-and-its-adjoint-shift",
            "title": "The partial Legendre kernel and its adjoint shift",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/the-partial-legendre-kernel-and-its-adjoint-shift.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/the-partial-legendre-kernel-and-its-adjoint-shift.md"
          },
          {
            "id": "fourier-sato-transport-of-microlocal-morphisms",
            "title": "Fourier-Sato transport of microlocal morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/fourier-sato-transport-of-microlocal-morphisms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/fourier-sato-transport-of-microlocal-morphisms.md"
          },
          {
            "id": "subanalytic-sets-and-limiting-tangent-directions",
            "title": "Subanalytic sets and limiting tangent directions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "conic-subanalytic-images-and-isotropic-dimension",
            "title": "Conic subanalytic images and isotropic dimension",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "isotropic-cotangent-transport-and-discrete-critical-values",
            "title": "Isotropic cotangent transport and discrete critical values",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "finite-conormal-closures-and-generic-base-directions",
            "title": "Finite conormal closures and generic base directions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "involutive-subsets-of-subanalytic-isotropic-sets",
            "title": "Involutive subsets of subanalytic isotropic sets",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "boundary-forms-and-lagrangian-normal-cones",
            "title": "Boundary forms and Lagrangian normal cones",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "limiting-cotangent-sums-and-characteristic-inverse-images",
            "title": "Limiting cotangent sums and characteristic inverse images",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "microlocal-stratifications-by-removing-bad-loci",
            "title": "Microlocal stratifications by removing bad loci",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "unshared-conormal-directions-and-dimension-filtrations",
            "title": "Unshared conormal directions and dimension filtrations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "generic-squared-distance-and-cotangent-transversality",
            "title": "Generic squared distance and cotangent transversality",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/generic-squared-distance-and-cotangent-transversality.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/generic-squared-distance-and-cotangent-transversality.md"
          },
          {
            "id": "constructibility-from-microsupport-and-perfect-stalks",
            "title": "Constructibility from microsupport and perfect stalks",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "derived-constructibility-through-common-triangulations",
            "title": "Derived constructibility through common triangulations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "weak-constructibility-under-sheaf-operations",
            "title": "Weak constructibility under sheaf operations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "small-balls-central-fibres-and-supported-cohomology",
            "title": "Small balls, central fibres and supported cohomology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "perfect-coefficients-on-compact-fibres",
            "title": "Perfect coefficients on compact fibres",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "constructible-costalks-and-verdier-duality",
            "title": "Constructible costalks and Verdier duality",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "perfect-operations-and-finite-microlocal-coefficients",
            "title": "Perfect operations and finite microlocal coefficients",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "natural-duality-for-specialization-and-microlocal-hom",
            "title": "Natural duality for specialization and microlocal Hom",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/natural-duality-for-specialization-and-microlocal-hom.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/natural-duality-for-specialization-and-microlocal-hom.md"
          },
          {
            "id": "complex-conicity-and-analytic-lagrangian-closures",
            "title": "Complex conicity and analytic Lagrangian closures",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "analytic-normal-cones-through-complex-deformation",
            "title": "Analytic normal cones through complex deformation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "analytic-conormal-covers-and-singular-involutivity",
            "title": "Analytic conormal covers and singular involutivity",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "complex-microlocal-stratifications-and-constructibility",
            "title": "Complex microlocal stratifications and constructibility",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "holomorphic-operations-and-complex-fourier-symmetries",
            "title": "Holomorphic operations and complex Fourier symmetries",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "nonproper-holomorphic-pushforwards-through-cutoffs",
            "title": "Nonproper holomorphic pushforwards through cutoffs",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/nonproper-holomorphic-pushforwards-through-cutoffs.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/nonproper-holomorphic-pushforwards-through-cutoffs.md"
          },
          {
            "id": "local-holomorphic-pushforwards-over-a-complex-curve",
            "title": "Local holomorphic pushforwards over a complex curve",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/local-holomorphic-pushforwards-over-a-complex-curve.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/local-holomorphic-pushforwards-over-a-complex-curve.md"
          },
          {
            "id": "complex-constructible-sheaves-and-missing-derived-classes",
            "title": "Complex-constructible sheaves and missing derived classes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "nearby-cycles-and-the-two-monodromy-triangles",
            "title": "Nearby cycles and the two monodromy triangles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "proper-pushforwards-of-nearby-and-vanishing-cycles",
            "title": "Proper pushforwards of nearby and vanishing cycles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "nearby-cycles-through-the-normal-deformation",
            "title": "Nearby cycles through the normal deformation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "complex-nearby-cycles-as-normal-and-conormal-sections",
            "title": "Complex nearby cycles as normal and conormal sections",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "quadratic-cycles-and-the-holomorphic-microsupport-test",
            "title": "Quadratic cycles and the holomorphic microsupport test",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "vanishing-cycles-as-positive-real-support",
            "title": "Vanishing cycles as positive real support",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "whitney-secants-and-the-microlocal-stratification-condition",
            "title": "Whitney secants and the microlocal stratification condition",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/whitney-secants-and-the-microlocal-stratification-condition.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/whitney-secants-and-the-microlocal-stratification-condition.md"
          },
          {
            "id": "duality-maps-for-constructible-inverse-and-direct-images",
            "title": "Duality maps for constructible inverse and direct images",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "constructibility-through-smooth-cutoffs-and-microlocal-properness",
            "title": "Constructibility through smooth cutoffs and microlocal properness",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "constructible-models-in-one-cotangent-direction",
            "title": "Constructible models in one cotangent direction",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "closed-conormal-unions-at-singular-points",
            "title": "Closed conormal unions at singular points",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/closed-conormal-unions-at-singular-points.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/closed-conormal-unions-at-singular-points.md"
          },
          {
            "id": "the-dualizing-complex-from-oriented-simplices",
            "title": "The dualizing complex from oriented simplices",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "local-systems-across-an-analytic-boundary",
            "title": "Local systems across an analytic boundary",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "reading-the-geometry-and-cycle-literature",
            "title": "Reading the geometry and cycle literature",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/reading-the-geometry-and-cycle-literature.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/reading-the-geometry-and-cycle-literature.md"
          },
          {
            "id": "constructible-traces-and-local-euler-indices",
            "title": "Constructible traces and local Euler indices",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/"
          },
          {
            "id": "closed-supports-and-evaluated-proper-transport",
            "title": "Closed supports and evaluated proper transport",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/closed-supports-and-evaluated-proper-transport.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/closed-supports-and-evaluated-proper-transport.md"
          },
          {
            "id": "proper-characteristic-classes-and-the-compact-index",
            "title": "Proper characteristic classes and the compact index",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/proper-characteristic-classes-and-the-compact-index.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/proper-characteristic-classes-and-the-compact-index.md"
          },
          {
            "id": "subanalytic-chains-and-closed-cycle-supports",
            "title": "Subanalytic chains and closed cycle supports",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/subanalytic-chains-and-closed-cycle-supports.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/subanalytic-chains-and-closed-cycle-supports.md"
          },
          {
            "id": "supports-products-and-proper-images-of-chains",
            "title": "Supports, products and proper images of chains",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/supports-products-and-proper-images-of-chains.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/supports-products-and-proper-images-of-chains.md"
          },
          {
            "id": "the-dualizing-resolution-by-subanalytic-chains",
            "title": "The dualizing resolution by subanalytic chains",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/the-dualizing-resolution-by-subanalytic-chains.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/the-dualizing-resolution-by-subanalytic-chains.md"
          },
          {
            "id": "intersections-of-supported-subanalytic-cycles",
            "title": "Intersections of supported subanalytic cycles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/intersections-of-supported-subanalytic-cycles.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/intersections-of-supported-subanalytic-cycles.md"
          },
          {
            "id": "lagrangian-cycles-and-proper-cotangent-images",
            "title": "Lagrangian cycles and proper cotangent images",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/lagrangian-cycles-and-proper-cotangent-images.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/lagrangian-cycles-and-proper-cotangent-images.md"
          },
          {
            "id": "pulling-back-lagrangian-cycles-through-a-graph",
            "title": "Pulling back Lagrangian cycles through a graph",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/pulling-back-lagrangian-cycles-through-a-graph.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/pulling-back-lagrangian-cycles-through-a-graph.md"
          },
          {
            "id": "continuous-sections-and-supported-cycle-intersections",
            "title": "Continuous sections and supported cycle intersections",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/continuous-sections-and-supported-cycle-intersections.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/continuous-sections-and-supported-cycle-intersections.md"
          },
          {
            "id": "transverse-pullback-of-normalized-conormal-cycles",
            "title": "Transverse pullback of normalized conormal cycles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/transverse-pullback-of-normalized-conormal-cycles.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/transverse-pullback-of-normalized-conormal-cycles.md"
          },
          {
            "id": "characteristic-cycles-from-supported-microlocal-identities",
            "title": "Characteristic cycles from supported microlocal identities",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/characteristic-cycles-from-supported-microlocal-identities.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/characteristic-cycles-from-supported-microlocal-identities.md"
          },
          {
            "id": "transporting-characteristic-cycles-through-a-graph",
            "title": "Transporting characteristic cycles through a graph",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/transporting-characteristic-cycles-through-a-graph.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/transporting-characteristic-cycles-through-a-graph.md"
          },
          {
            "id": "integer-coefficients-and-additive-characteristic-cycles",
            "title": "Integer coefficients and additive characteristic cycles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/integer-coefficients-and-additive-characteristic-cycles.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/integer-coefficients-and-additive-characteristic-cycles.md"
          },
          {
            "id": "antipodal-duality-and-half-line-characteristic-cycles",
            "title": "Antipodal duality and half-line characteristic cycles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/antipodal-duality-and-half-line-characteristic-cycles.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/antipodal-duality-and-half-line-characteristic-cycles.md"
          },
          {
            "id": "lorentz-cones-and-their-vertex-characteristic-cycles",
            "title": "Lorentz cones and their vertex characteristic cycles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/lorentz-cones-and-their-vertex-characteristic-cycles.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/lorentz-cones-and-their-vertex-characteristic-cycles.md"
          },
          {
            "id": "differential-sections-and-proper-below-euler-indices",
            "title": "Differential sections and proper-below Euler indices",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/differential-sections-and-proper-below-euler-indices.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/differential-sections-and-proper-below-euler-indices.md"
          },
          {
            "id": "isolated-phases-and-local-characteristic-cycle-indices",
            "title": "Isolated phases and local characteristic-cycle indices",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/isolated-phases-and-local-characteristic-cycle-indices.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/isolated-phases-and-local-characteristic-cycle-indices.md"
          },
          {
            "id": "pure-test-degrees-and-strong-morse-inequalities",
            "title": "Pure test degrees and strong Morse inequalities",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/pure-test-degrees-and-strong-morse-inequalities.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/pure-test-degrees-and-strong-morse-inequalities.md"
          },
          {
            "id": "orientations-of-conormal-cycles-and-transverse-intersections",
            "title": "Orientations of conormal cycles and transverse intersections",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/orientations-of-conormal-cycles-and-transverse-intersections.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/orientations-of-conormal-cycles-and-transverse-intersections.md"
          },
          {
            "id": "lefschetz-traces-of-constructible-correspondences",
            "title": "Lefschetz traces of constructible correspondences",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/lefschetz-traces-of-constructible-correspondences.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/lefschetz-traces-of-constructible-correspondences.md"
          },
          {
            "id": "homotopies-and-local-cutoffs-for-lefschetz-contributions",
            "title": "Homotopies and local cutoffs for Lefschetz contributions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/homotopies-and-local-cutoffs-for-lefschetz-contributions.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/homotopies-and-local-cutoffs-for-lefschetz-contributions.md"
          },
          {
            "id": "specializing-lefschetz-contributions-to-the-tangent-space",
            "title": "Specializing Lefschetz contributions to the tangent space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/specializing-lefschetz-contributions-to-the-tangent-space.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/specializing-lefschetz-contributions-to-the-tangent-space.md"
          },
          {
            "id": "expanding-subspaces-and-hyperbolic-lefschetz-cutoffs",
            "title": "Expanding subspaces and hyperbolic Lefschetz cutoffs",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/expanding-subspaces-and-hyperbolic-lefschetz-cutoffs.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/expanding-subspaces-and-hyperbolic-lefschetz-cutoffs.md"
          },
          {
            "id": "shrinking-localization-and-complex-fixed-point-traces",
            "title": "Shrinking localization and complex fixed-point traces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/shrinking-localization-and-complex-fixed-point-traces.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/shrinking-localization-and-complex-fixed-point-traces.md"
          },
          {
            "id": "constructible-functions-and-euler-integration",
            "title": "Constructible functions and Euler integration",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/constructible-functions-and-euler-integration.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/constructible-functions-and-euler-integration.md"
          },
          {
            "id": "homogeneous-functions-fourier-transform-and-specialization",
            "title": "Homogeneous functions, Fourier transformation and specialization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/homogeneous-functions-fourier-transform-and-specialization.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/homogeneous-functions-fourier-transform-and-specialization.md"
          },
          {
            "id": "constructible-functions-and-integral-lagrangian-cycles",
            "title": "Constructible functions and integral Lagrangian cycles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/constructible-functions-and-integral-lagrangian-cycles.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/constructible-functions-and-integral-lagrangian-cycles.md"
          },
          {
            "id": "euler-convolution-and-convex-inverses",
            "title": "Euler convolution and convex inverses",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/euler-convolution-and-convex-inverses.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/SH-03/src/euler-convolution-and-convex-inverses.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NOE-SYM",
        "kind": "advanced",
        "title": {
          "en": "Symmetries and conservation laws"
        },
        "summary": "The first-variation identity, both Noether theorems and their converses, mechanics and gauge fields, the stationary black-hole first law, null Lagrangians, Euler covariance, and the reduction of Riemannian differential invariants to curvature.",
        "subject": "analysis-pde",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-SYM/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI), in Codex at Ultra.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Independently authored lessons, proofs, examples, exercises, solutions and original figures. Linked historical works keep their own rights.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "NOE-SYM-01",
            "title": "Variational symmetries and Noether's first theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-SYM/NOE-SYM-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-SYM/"
          },
          {
            "id": "NOE-SYM-02",
            "title": "Infinite symmetry groups and Noether's second theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-SYM/NOE-SYM-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-SYM/"
          },
          {
            "id": "NOE-SYM-03",
            "title": "The formal calculus of variations and differential invariants",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-SYM/NOE-SYM-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-SYM/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NT-EXPF",
        "kind": "advanced",
        "title": {
          "en": "Explicit formulas and positivity"
        },
        "summary": "Explicit formulas with jumps, Dirichlet characters, Guinand summation, Weil and Li criteria, the infinite place, heat flow, pair correlation and random matrix predictions.",
        "subject": "number-theory",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-EXPF/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI), in Codex at Ultra.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original independently authored exposition, proofs, examples, exercises and figure sources. Cited works retain their own rights.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "NT-EXPF-01",
            "title": "The explicit formula with general test functions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-EXPF/NT-EXPF-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-EXPF/src/NT-EXPF-01.md"
          },
          {
            "id": "NT-EXPF-02",
            "title": "Explicit formulas for Dirichlet L-functions and primes in progressions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-EXPF/NT-EXPF-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-EXPF/src/NT-EXPF-02.md"
          },
          {
            "id": "NT-EXPF-03",
            "title": "Guinand's formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-EXPF/NT-EXPF-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-EXPF/src/NT-EXPF-03.md"
          },
          {
            "id": "NT-EXPF-06",
            "title": "Li's criterion",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-EXPF/NT-EXPF-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-EXPF/src/NT-EXPF-06.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "KT-KK",
        "kind": "advanced",
        "title": {
          "en": "Kasparov's KK-theory"
        },
        "summary": "Extensions, analytic K-homology, graded cycles and Kasparov products, followed by Bott and Thom equivalences, index theory, equivariance and assembly maps.",
        "subject": "operator-algebras",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI), in Codex at Ultra effort.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independent lesson text, proofs, examples, exercises and original diagrams written for this course.",
          "exceptions": []
        },
        "lessons": [
          {
            "id": "KT-KK-01",
            "title": "Extensions of C*-algebras and the Busby invariant",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-01.md"
          },
          {
            "id": "KT-KK-02",
            "title": "Ext groups, absorption and Brown-Douglas-Fillmore theory",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-02.md"
          },
          {
            "id": "KT-KK-03",
            "title": "Fredholm modules and analytic K-homology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-03.md"
          },
          {
            "id": "KT-KK-04",
            "title": "The index pairing between K-theory and K-homology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-04.md"
          },
          {
            "id": "KT-KK-05",
            "title": "Graded C*-algebras, Clifford algebras and graded Hilbert modules",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-05.md"
          },
          {
            "id": "KT-KK-06",
            "title": "Kasparov modules and the groups KK(A, B)",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-06.md"
          },
          {
            "id": "KT-KK-08",
            "title": "Kasparov's technical theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-08.md"
          },
          {
            "id": "KT-KK-09",
            "title": "Connections and the existence of the Kasparov product",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-09.md"
          },
          {
            "id": "KT-KK-10",
            "title": "Homotopy, associativity, the index pairing and KK-equivalence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-10.md"
          },
          {
            "id": "KT-KK-13",
            "title": "Thom isomorphisms and K-orientations in KK",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-13.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/KT-KK/KT-KK-13.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NT-ZETA",
        "kind": "advanced",
        "title": {
          "en": "The Riemann zeta function"
        },
        "summary": "A graduate course on the analytic theory of the Riemann zeta function: Dirichlet series, prime-counting estimates, the Gamma function and the functional equation, entire-function products, growth and zeros, the prime number theorem and explicit formulas, mean values, critical-line zeros and short intervals.",
        "subject": "number-theory",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI) in Codex, Ultra setting.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored lesson text, proofs, examples, exercises and solutions.",
          "exceptions": [
            "The separately supplied unmodified article by Chiara Bellotti, Explicit bounds for the Riemann zeta function and a new zero-free region (2024), retains CC BY 4.0. Its attribution, original notices and references accompany the PDF and source archive. The original course text is CC0.",
            "The separately supplied unmodified paper and editable LaTeX by Jonas Whidden, Robin's 1984 criterion for the Riemann hypothesis: a formally verified proof, release 1.1.1 (2026), retain CC BY 4.0, selected from the explicit dual licence. Original notices and research credits accompany these files. The original course text and finite harmonic-inequality certificate are CC0.",
            "The unmodified Guth–Maynard arXiv v2 proof companion and the expressly identified adaptation in Section 10.1 of Zero-density estimates and primes in short intervals retain CC BY 4.0, with authorship, references and notices. The independent density application and other original course content are CC0."
          ]
        },
        "lessons": [
          {
            "id": "NT-ZETA-01",
            "title": "Dirichlet series and Euler products",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-01.md"
          },
          {
            "id": "NT-ZETA-02",
            "title": "Counting primes by elementary means: Chebyshev and Mertens",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-02.md"
          },
          {
            "id": "NT-ZETA-03",
            "title": "The Gamma function and Stirling's formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-03.md"
          },
          {
            "id": "NT-ZETA-04",
            "title": "Poisson summation, theta, and the functional equation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-04.md"
          },
          {
            "id": "NT-ZETA-05",
            "title": "Entire functions of order one and the Hadamard product of ξ",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-05.md"
          },
          {
            "id": "NT-ZETA-06",
            "title": "Growth in the critical strip: convexity and the Lindelöf hypothesis",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-06.md"
          },
          {
            "id": "NT-ZETA-07",
            "title": "Exponential sums and a subconvex bound",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-07.md"
          },
          {
            "id": "NT-ZETA-08",
            "title": "Nonvanishing on the line σ = 1 and the zero-free region",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-08.md"
          },
          {
            "id": "NT-ZETA-09",
            "title": "The prime number theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-09.md"
          },
          {
            "id": "NT-ZETA-10",
            "title": "The Riemann–von Mangoldt formula",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-10.md"
          },
          {
            "id": "NT-ZETA-11",
            "title": "Perron's formula and the explicit formula for ψ(x)",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-11.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-11.md"
          },
          {
            "id": "NT-ZETA-12",
            "title": "The prime number theorem with the classical error term",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-12.md"
          },
          {
            "id": "NT-ZETA-13",
            "title": "Growth bounds and wider zero-free regions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-13.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-13.md"
          },
          {
            "id": "NT-ZETA-14",
            "title": "The Riemann hypothesis and its standard equivalents",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-14.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-14.md"
          },
          {
            "id": "NT-ZETA-15",
            "title": "Oscillation of the error term",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-15.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-15.md"
          },
          {
            "id": "NT-ZETA-16",
            "title": "Mean values of Dirichlet polynomials and of zeta on the critical line",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-16.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-16.md"
          },
          {
            "id": "NT-ZETA-18",
            "title": "The Riemann hypothesis implies the Lindelöf hypothesis",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-18.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-18.md"
          },
          {
            "id": "NT-ZETA-19",
            "title": "Zero-density estimates and primes in short intervals",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/NT-ZETA-19.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-ZETA/downloads/NT-ZETA-19.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AG-MO",
        "kind": "advanced",
        "title": {
          "en": "Morphisms of schemes"
        },
        "summary": "The geometry of maps between schemes: separation, finiteness, limits, valuative criteria, properness, projectivity, line bundles, fibre dimensions, Zariski’s Main Theorem, normalization, rational maps, blow-ups and divisors.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI), in Codex at Ultra.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored course text, figures and figure sources.",
          "exceptions": [
            "Linked source works retain their own licences. Rendered font glyphs retain their font licences."
          ]
        },
        "lessons": [
          {
            "id": "AG-MO-01",
            "title": "The diagonal and separated morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/AG-MO-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/the-diagonal-and-separated-morphisms.md"
          },
          {
            "id": "AG-MO-02",
            "title": "Finiteness of morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/AG-MO-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/finiteness-of-morphisms.md"
          },
          {
            "id": "AG-MO-03",
            "title": "Limits of schemes and Noetherian approximation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/AG-MO-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/limits-and-noetherian-approximation.md"
          },
          {
            "id": "AG-MO-04",
            "title": "Valuation rings and the valuative criterion of separatedness",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/valuation-rings-and-separatedness.md"
          },
          {
            "id": "AG-MO-05",
            "title": "Affine morphisms, relative Spec, and finite morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/AG-MO-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/affine-integral-and-finite-morphisms.md"
          },
          {
            "id": "AG-MO-06",
            "title": "Quasi-finite morphisms and Chevalley’s theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/AG-MO-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/quasi-finite-morphisms-and-chevalley.md"
          },
          {
            "id": "AG-MO-07",
            "title": "Proper morphisms and the valuative criterion of properness",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/proper-morphisms-and-valuative-criteria.md"
          },
          {
            "id": "AG-MO-08",
            "title": "Very ample invertible sheaves, Segre and Veronese embeddings",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/very-ample-sheaves-and-embeddings.md"
          },
          {
            "id": "AG-MO-09",
            "title": "Ample invertible sheaves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/ample-invertible-sheaves.md"
          },
          {
            "id": "AG-MO-10",
            "title": "Projective morphisms and Chow’s lemma",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/projective-morphisms-and-chows-lemma.md"
          },
          {
            "id": "AG-MO-11",
            "title": "Dimension of fibres",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/dimension-of-fibres.md"
          },
          {
            "id": "AG-MO-12",
            "title": "Zariski's Main Theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/AG-MO-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/zariskis-main-theorem.md"
          },
          {
            "id": "AG-MO-13",
            "title": "Normalization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/normalization.md"
          },
          {
            "id": "AG-MO-14",
            "title": "Rational maps and birational morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/rational-maps-and-birational-morphisms.md"
          },
          {
            "id": "AG-MO-15",
            "title": "Effective Cartier divisors and invertible sheaves",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/effective-cartier-divisors-and-invertible-sheaves.md"
          },
          {
            "id": "AG-MO-16",
            "title": "Blowing up",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/blowing-up.md"
          },
          {
            "id": "AG-MO-17",
            "title": "Weil divisors and the class group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-MO/src/weil-divisors-and-the-class-group.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AG-SS",
        "kind": "advanced",
        "title": {
          "en": "Sheaves and schemes"
        },
        "summary": "The language of schemes: sheaves on topological spaces, ringed spaces and their modules, affine schemes and the equivalence between modules and quasi-coherent sheaves, schemes glued from affine pieces, the functor of points and representability, fibre products, local properties, quasi-coherent sheaves and closed subschemes, and Proj with projective space and projective bundles. The course cites the site's lesson on sheaves of modules for the homological facts it proves and supplies the sheaf-theoretic background that lesson assumes. Lessons prove what they teach; the Stacks project (read in its Clanker Stacks edition) is cited by tag.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI), in Codex at Ultra.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored course text, original figures and figure-generation sources.",
          "exceptions": [
            "Referenced works and font notices retain their own licences. No source-book text or figures are reproduced."
          ]
        },
        "lessons": [
          {
            "id": "sheaves-on-topological-spaces",
            "title": "Sheaves on topological spaces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/sheaves-on-topological-spaces.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/src/sheaves-on-topological-spaces.md"
          },
          {
            "id": "ringed-spaces-and-sheaves-of-modules",
            "title": "Ringed spaces and sheaves of modules",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/ringed-spaces-and-sheaves-of-modules.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/src/ringed-spaces-and-sheaves-of-modules.md"
          },
          {
            "id": "quasi-coherent-coherent-and-locally-free-modules",
            "title": "Quasi-coherent, coherent and locally free modules",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/quasi-coherent-coherent-and-locally-free-modules.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/src/quasi-coherent-coherent-and-locally-free-modules.md"
          },
          {
            "id": "affine-schemes",
            "title": "Affine schemes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/affine-schemes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/src/affine-schemes.md"
          },
          {
            "id": "schemes-gluing-and-immersions",
            "title": "Schemes, gluing and immersions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/schemes-gluing-and-immersions.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/src/schemes-gluing-and-immersions.md"
          },
          {
            "id": "the-functor-of-points-and-representability",
            "title": "The functor of points and representability",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/the-functor-of-points-and-representability.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/src/the-functor-of-points-and-representability.md"
          },
          {
            "id": "fibre-products-and-base-change",
            "title": "Fibre products and base change",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/fibre-products-and-base-change.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/src/fibre-products-and-base-change.md"
          },
          {
            "id": "properties-of-schemes",
            "title": "Properties of schemes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/properties-of-schemes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/src/properties-of-schemes.md"
          },
          {
            "id": "quasi-coherent-sheaves-on-schemes",
            "title": "Quasi-coherent sheaves on schemes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/quasi-coherent-sheaves-on-schemes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/src/quasi-coherent-sheaves-on-schemes.md"
          },
          {
            "id": "closed-subschemes-and-scheme-theoretic-images",
            "title": "Closed subschemes and scheme-theoretic images",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/closed-subschemes-and-scheme-theoretic-images.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/src/closed-subschemes-and-scheme-theoretic-images.md"
          },
          {
            "id": "proj-of-a-graded-ring",
            "title": "Proj of a graded ring",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/proj-of-a-graded-ring.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/src/proj-of-a-graded-ring.md"
          },
          {
            "id": "projective-space-relative-proj-and-maps-to-projective-space",
            "title": "Projective space, relative Proj and maps to projective space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/projective-space-relative-proj-and-maps-to-projective-space.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-SS/src/projective-space-relative-proj-and-maps-to-projective-space.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AG-QC",
        "kind": "advanced",
        "title": {
          "en": "Cohomology of quasi-coherent sheaves"
        },
        "summary": "Sheaf and Čech cohomology, affine and projective schemes, proper direct images, base change, formal geometry, Serre duality and GAGA.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI), in Codex, at Ultra effort. No separate AI review is claimed.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Independently written lesson prose, proofs, examples, exercises and original drawings. Cited works keep their own rights.",
          "exceptions": [
            "The preparation-and-division component in Complex analytic spaces and analytification, Section 2, adapts Jean-Pierre Demailly’s 21 June 2012 book, crediting C. L. Siegel, under the author’s explicit OpenContent permission to distribute and modify it on the web while retaining authorship. That component is outside the CC0 dedication; exact attribution and changes accompany the proof. Other cited books and MIT supplementary notes retain their own rights."
          ]
        },
        "lessons": [
          {
            "id": "cohomology-of-sheaves-on-ringed-spaces",
            "title": "Cohomology of sheaves on ringed spaces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/cohomology-of-sheaves-on-ringed-spaces.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/cohomology-of-sheaves-on-ringed-spaces.md"
          },
          {
            "id": "cech-cohomology",
            "title": "Čech cohomology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/cech-cohomology.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/cech-cohomology.md"
          },
          {
            "id": "affine-cohomology-and-serres-criterion",
            "title": "Cohomology of affine schemes and Serre's criterion",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/affine-cohomology-and-serres-criterion.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/affine-cohomology-and-serres-criterion.md"
          },
          {
            "id": "cohomology-of-projective-space",
            "title": "Cohomology of projective space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/cohomology-of-projective-space.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/cohomology-of-projective-space.md"
          },
          {
            "id": "serres-theorems-on-projective-schemes",
            "title": "Coherent sheaves on projective schemes: Serre's theorems",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/serres-theorems-on-projective-schemes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/serres-theorems-on-projective-schemes.md"
          },
          {
            "id": "proper-morphisms-and-coherent-direct-images",
            "title": "Coherence of higher direct images under proper morphisms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/proper-morphisms-and-coherent-direct-images.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/proper-morphisms-and-coherent-direct-images.md"
          },
          {
            "id": "euler-characteristics-and-hilbert-polynomials",
            "title": "Euler characteristics and Hilbert polynomials",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/euler-characteristics-and-hilbert-polynomials.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/euler-characteristics-and-hilbert-polynomials.md"
          },
          {
            "id": "base-change-and-the-grothendieck-complex",
            "title": "Base change and the Grothendieck complex",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/base-change-and-the-grothendieck-complex.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/base-change-and-the-grothendieck-complex.md"
          },
          {
            "id": "semicontinuity-and-grauerts-theorem",
            "title": "Semicontinuity and Grauert's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/semicontinuity-and-grauerts-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/semicontinuity-and-grauerts-theorem.md"
          },
          {
            "id": "the-theorem-on-formal-functions",
            "title": "The theorem on formal functions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/the-theorem-on-formal-functions.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/the-theorem-on-formal-functions.md"
          },
          {
            "id": "zariski-connectedness-and-stein-factorization",
            "title": "Zariski's connectedness theorem and Stein factorization",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/zariski-connectedness-and-stein-factorization.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/zariski-connectedness-and-stein-factorization.md"
          },
          {
            "id": "grothendiecks-existence-theorem",
            "title": "Grothendieck's existence theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/grothendiecks-existence-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/grothendiecks-existence-theorem.md"
          },
          {
            "id": "algebraization-of-formal-schemes",
            "title": "Algebraization of formal schemes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/algebraization-of-formal-schemes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/algebraization-of-formal-schemes.md"
          },
          {
            "id": "ext-sheaves-and-serre-duality-on-projective-space",
            "title": "Ext sheaves and Serre duality on projective space",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/ext-sheaves-and-serre-duality-on-projective-space.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/ext-sheaves-and-serre-duality-on-projective-space.md"
          },
          {
            "id": "dualizing-sheaves-and-serre-duality-for-projective-schemes",
            "title": "Dualizing sheaves and Serre duality for projective schemes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/dualizing-sheaves-and-serre-duality-for-projective-schemes.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/dualizing-sheaves-and-serre-duality-for-projective-schemes.md"
          },
          {
            "id": "the-right-adjoint-of-derived-pushforward",
            "title": "The right adjoint of derived pushforward",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/the-right-adjoint-of-derived-pushforward.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/the-right-adjoint-of-derived-pushforward.md"
          },
          {
            "id": "complex-analytic-spaces-and-analytification",
            "title": "Complex analytic spaces and analytification",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/complex-analytic-spaces-and-analytification.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/complex-analytic-spaces-and-analytification.md"
          },
          {
            "id": "serres-comparison-theorems-and-chows-theorem",
            "title": "Serre's comparison theorems and Chow's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/serres-comparison-theorems-and-chows-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-QC/src/serres-comparison-theorems-and-chows-theorem.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NOE-INV",
        "kind": "advanced",
        "title": {
          "en": "Invariants and finiteness"
        },
        "summary": "Classical covariants and symbolic notation; Hilbert finite generation; finite groups, the Noether degree bound and Molien series; polarization and vector invariants; finiteness over every characteristic and Noetherian bases.",
        "subject": "algebra",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-INV/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI), in Codex at Ultra.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Independently authored course text, proofs, exercises and original diagrams.",
          "exceptions": [
            "Linked historical works and references retain their own rights; MathJax and font assets retain their licences."
          ]
        },
        "lessons": [
          {
            "id": "NOE-INV-01",
            "title": "Covariants of binary and ternary forms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-INV/NOE-INV-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-INV/"
          },
          {
            "id": "NOE-INV-02",
            "title": "Forms in several variables and Hilbert finiteness",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-INV/NOE-INV-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-INV/"
          },
          {
            "id": "NOE-INV-03",
            "title": "Invariants of finite groups and Noether's degree bound",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-INV/NOE-INV-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-INV/"
          },
          {
            "id": "NOE-INV-04",
            "title": "Polarization and invariants of many vectors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-INV/NOE-INV-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-INV/"
          },
          {
            "id": "NOE-INV-05",
            "title": "Finiteness for finite groups in every characteristic",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-INV/NOE-INV-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-INV/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NT-DIRL",
        "kind": "advanced",
        "title": {
          "en": "Dirichlet L-functions and primes in progressions"
        },
        "summary": "Dirichlet characters and L-functions, from Dirichlet's theorem to average distribution and the least prime in a progression. The course develops conductors, Gauss sums, character sums, functional equations, special values, zero-free regions, exceptional zeros, explicit formulas, the prime number theorem for progressions, Siegel and Siegel–Walfisz estimates, the large sieve, Vaughan's identity, the Bombieri–Vinogradov and Barban–Davenport–Halberstam theorems, and Linnik's theorem. The opening lessons prove the character constructions, quadratic reciprocity and elementary analytic prerequisites used in their arguments.",
        "subject": "number-theory",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI), in Codex at Ultra. No separate AI review is recorded.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored mathematical text and original figures.",
          "exceptions": [
            "Bundled renderer dependencies and rendered font glyphs retain their own licences."
          ]
        },
        "lessons": [
          {
            "id": "dirichlet-characters",
            "title": "Dirichlet characters",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "dirichlet-s-theorem-on-primes-in-arithmetic-progressions",
            "title": "Dirichlet's theorem on primes in arithmetic progressions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "gauss-sums",
            "title": "Gauss sums",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "the-functional-equation-of-dirichlet-l-functions",
            "title": "The functional equation of Dirichlet L-functions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "values-of-dirichlet-l-functions-at-s-1",
            "title": "Values of Dirichlet L-functions at s = 1",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "zero-free-regions-and-the-exceptional-zero",
            "title": "Zero-free regions and the exceptional zero",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "counting-zeros-and-the-explicit-formula-for-x",
            "title": "Counting zeros and the explicit formula for ψ(x, χ)",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "the-prime-number-theorem-for-arithmetic-progressions",
            "title": "The prime number theorem for arithmetic progressions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "siegel-s-theorem",
            "title": "Siegel's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "the-siegelwalfisz-theorem",
            "title": "The Siegel–Walfisz theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "the-large-sieve-inequality",
            "title": "The large sieve inequality",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "the-multiplicative-large-sieve-and-bilinear-forms-with-characters",
            "title": "The multiplicative large sieve and bilinear forms with characters",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "vaughan-s-identity-and-sums-over-primes",
            "title": "Vaughan's identity and sums over primes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "the-bombierivinogradov-theorem",
            "title": "The Bombieri–Vinogradov theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "mean-square-distribution-the-barbandavenporthalberstam-theorem",
            "title": "Mean square distribution: the Barban–Davenport–Halberstam theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          },
          {
            "id": "the-least-prime-in-a-progression-linnik-s-theorem",
            "title": "The least prime in a progression: Linnik's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-DIRL/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NT-CFT",
        "kind": "advanced",
        "title": {
          "en": "Class field theory"
        },
        "summary": "Reciprocity for local and global fields, built from Galois theory, cyclic cohomology and radicals, then made explicit with Lubin–Tate groups, idèles and ray class fields.",
        "subject": "number-theory",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol, Ultra. No independent review is claimed.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original course text, figures and code.",
          "exceptions": [
            "Rendered DejaVu font glyphs retain the DejaVu font licence. Cited works retain their own rights; no protected book text or figures are included."
          ]
        },
        "lessons": [
          {
            "id": "profinite-groups-and-infinite-galois-theory",
            "title": "Profinite groups and infinite Galois theory",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/profinite-groups-and-infinite-galois-theory.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/profinite-groups-and-infinite-galois-theory.md"
          },
          {
            "id": "cohomology-of-cyclic-groups-and-the-herbrand-quotient",
            "title": "Cohomology of cyclic groups and the Herbrand quotient",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/cohomology-of-cyclic-groups-and-the-herbrand-quotient.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/cohomology-of-cyclic-groups-and-the-herbrand-quotient.md"
          },
          {
            "id": "hilberts-theorem-90-and-kummer-theory",
            "title": "Hilbert's Theorem 90 and Kummer theory",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/hilberts-theorem-90-and-kummer-theory.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/hilberts-theorem-90-and-kummer-theory.md"
          },
          {
            "id": "frobenius-lifts-and-abstract-reciprocity",
            "title": "Frobenius lifts and abstract reciprocity",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/frobenius-lifts-and-abstract-reciprocity.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/frobenius-lifts-and-abstract-reciprocity.md"
          },
          {
            "id": "the-reciprocity-law-and-the-class-field-correspondence",
            "title": "The reciprocity law and the class field correspondence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/the-reciprocity-law-and-the-class-field-correspondence.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/the-reciprocity-law-and-the-class-field-correspondence.md"
          },
          {
            "id": "local-reciprocity-and-norm-groups",
            "title": "Local reciprocity and norm groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/local-reciprocity-and-norm-groups.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/local-reciprocity-and-norm-groups.md"
          },
          {
            "id": "formal-groups-and-lubin-tate-modules",
            "title": "Formal groups and Lubin–Tate modules",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/formal-groups-and-lubin-tate-modules.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/formal-groups-and-lubin-tate-modules.md"
          },
          {
            "id": "lubin-tate-division-fields",
            "title": "Lubin–Tate division fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/lubin-tate-division-fields.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/lubin-tate-division-fields.md"
          },
          {
            "id": "explicit-local-reciprocity-and-existence",
            "title": "Explicit local reciprocity and the existence theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/explicit-local-reciprocity-and-existence.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/explicit-local-reciprocity-and-existence.md"
          },
          {
            "id": "abelian-ramification-conductors-and-hasse-arf",
            "title": "Abelian ramification, conductors and Hasse–Arf",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/abelian-ramification-conductors-and-hasse-arf.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/abelian-ramification-conductors-and-hasse-arf.md"
          },
          {
            "id": "hilbert-symbols-and-local-conics",
            "title": "Hilbert symbols and local conics",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/hilbert-symbols-and-local-conics.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/hilbert-symbols-and-local-conics.md"
          },
          {
            "id": "weil-groups-and-one-dimensional-representations",
            "title": "Weil groups and one-dimensional representations",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/weil-groups-and-one-dimensional-representations.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/weil-groups-and-one-dimensional-representations.md"
          },
          {
            "id": "ideles-in-extensions-and-their-cohomology",
            "title": "Idèles in extensions and their cohomology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/ideles-in-extensions-and-their-cohomology.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/ideles-in-extensions-and-their-cohomology.md"
          },
          {
            "id": "the-herbrand-quotient-of-the-idele-class-group",
            "title": "The Herbrand quotient of the idèle class group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/the-herbrand-quotient-of-the-idele-class-group.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/the-herbrand-quotient-of-the-idele-class-group.md"
          },
          {
            "id": "the-norm-index-bound-and-hasses-norm-theorem",
            "title": "The norm index bound and Hasse's norm theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/the-norm-index-bound-and-hasses-norm-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/the-norm-index-bound-and-hasses-norm-theorem.md"
          },
          {
            "id": "the-global-reciprocity-law",
            "title": "The global reciprocity law",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/the-global-reciprocity-law.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/the-global-reciprocity-law.md"
          },
          {
            "id": "global-existence-and-the-idelic-class-field-correspondence",
            "title": "Global existence and the idèlic class field correspondence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/global-existence-and-the-idelic-class-field-correspondence.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/global-existence-and-the-idelic-class-field-correspondence.md"
          },
          {
            "id": "ray-class-fields-conductors-and-ideal-reciprocity",
            "title": "Ray class fields, conductors and ideal reciprocity",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/ray-class-fields-conductors-and-ideal-reciprocity.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/ray-class-fields-conductors-and-ideal-reciprocity.md"
          },
          {
            "id": "hilbert-and-ring-class-fields-and-quadratic-prime-forms",
            "title": "Hilbert and ring class fields, and quadratic prime forms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/hilbert-and-ring-class-fields-and-quadratic-prime-forms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/hilbert-and-ring-class-fields-and-quadratic-prime-forms.md"
          },
          {
            "id": "kronecker-weber-and-the-maximal-abelian-extension-of-the-rationals",
            "title": "Kronecker–Weber and the maximal abelian extension of the rationals",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/kronecker-weber-and-the-maximal-abelian-extension-of-the-rationals.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/kronecker-weber-and-the-maximal-abelian-extension-of-the-rationals.md"
          },
          {
            "id": "artin-l-functions-conductors-and-discriminants",
            "title": "Artin L-functions, conductors and discriminants",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/artin-l-functions-conductors-and-discriminants.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/artin-l-functions-conductors-and-discriminants.md"
          },
          {
            "id": "the-chebotarev-density-theorem",
            "title": "The Chebotarev density theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/the-chebotarev-density-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/the-chebotarev-density-theorem.md"
          },
          {
            "id": "power-residue-symbols-and-reciprocity-laws",
            "title": "Power residue symbols and reciprocity laws",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/power-residue-symbols-and-reciprocity-laws.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/power-residue-symbols-and-reciprocity-laws.md"
          },
          {
            "id": "brauer-groups-of-local-and-global-fields",
            "title": "Brauer groups of local and global fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/brauer-groups-of-local-and-global-fields.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NT-CFT/src/brauer-groups-of-local-and-global-fields.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NOE-IDL",
        "kind": "advanced",
        "title": {
          "en": "Ideal theory in rings"
        },
        "summary": "Noether’s intersection theory: irreducible and primary components, isolated sets, relative and coprime decompositions, module examples, generic zeros, absolute primality, and resultant forms.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ideal-theory-in-rings/",
        "status": "draft",
        "status_note": "All five lessons are written and self-checked by the writing AI, GPT-6.1 Sol (OpenAI), in Codex at Ultra.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original independently authored course text, diagrams and code.",
          "exceptions": [
            "Linked Stacks proofs retain GFDL rights; historical readings and font notices are separately credited."
          ]
        },
        "lessons": [
          {
            "id": "NOE-IDL-01",
            "title": "Chain conditions and irreducible decompositions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ideal-theory-in-rings/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ideal-theory-in-rings/"
          },
          {
            "id": "NOE-IDL-02",
            "title": "Primary ideals and isolated components",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ideal-theory-in-rings/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ideal-theory-in-rings/"
          },
          {
            "id": "NOE-IDL-03",
            "title": "Modules, staircases and elementary divisors",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ideal-theory-in-rings/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ideal-theory-in-rings/"
          },
          {
            "id": "NOE-IDL-04",
            "title": "Generic zeros and absolute primality",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ideal-theory-in-rings/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ideal-theory-in-rings/"
          },
          {
            "id": "NOE-IDL-05",
            "title": "Resultant forms and elimination",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ideal-theory-in-rings/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/ideal-theory-in-rings/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "GL-SAT",
        "kind": "advanced",
        "title": {
          "en": "The affine Grassmannian and geometric Satake"
        },
        "summary": "From lattice counts and spherical Hecke algebras to geometric and derived Satake: loop groups, Schubert varieties, weight functors, convolution, fusion and the Langlands dual group.",
        "subject": "geometric-langlands",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-SAT/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol in Codex at Ultra. No independent review claimed.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original text, code and drawings.",
          "exceptions": [
            "Rendered font glyphs retain the font notices on the Licensing page. Referenced works retain their own rights."
          ]
        },
        "lessons": [
          {
            "id": "GL-SAT-01",
            "title": "Spherical Hecke algebras as functions on the affine Grassmannian",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-SAT/GL-SAT-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/GL-SAT/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "TR-BAKER",
        "kind": "advanced",
        "title": {
          "en": "Linear forms in logarithms and their applications"
        },
        "summary": "Linear and multiplicative logarithmic forms, Baker’s theorem, effective estimates and applications to exponential equations, Thue equations, units and class numbers.",
        "subject": "number-theory",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI. No independent review recorded.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original course text, mathematical exposition, solved exercises and original figure.",
          "exceptions": [
            "Rendered font glyphs retain their font licences; notices are included with the sources."
          ]
        },
        "lessons": [
          {
            "id": "linear-forms-in-logarithms-the-problem-the-trivial-bounds-and-effectivity",
            "title": "Linear forms in logarithms: the problem, the trivial bounds, and effectivity",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/"
          },
          {
            "id": "baker-s-theorem-i-building-an-auxiliary-function",
            "title": "Baker's theorem I: building an auxiliary function",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/"
          },
          {
            "id": "baker-s-theorem-ii-extrapolation-and-the-end-of-the-proof",
            "title": "Baker's theorem II: extrapolation and the end of the proof",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/"
          },
          {
            "id": "effective-lower-bounds-i-baker-s-theorem-and-its-arithmetic-tools",
            "title": "Effective lower bounds I: Baker's theorem and its arithmetic tools",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/"
          },
          {
            "id": "effective-lower-bounds-ii-proof-of-baker-s-theorem",
            "title": "Effective lower bounds II: proof of Baker's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/"
          },
          {
            "id": "two-logarithms-i-interpolation-determinants",
            "title": "Two logarithms I: interpolation determinants",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-BAKER/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "TR-TRANS",
        "kind": "advanced",
        "title": {
          "en": "Transcendental numbers"
        },
        "summary": "From Liouville's explicit constructions and algebraic heights to Hermite and Lindemann, auxiliary functions, elliptic transcendence, Roth's theorem, E-functions and algebraic independence.",
        "subject": "number-theory",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI; no human or independent review is claimed.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "The independently authored lesson text, exercises, solutions, original mathematical figures and code.",
          "exceptions": [
            "Rendered font glyphs and the bundled MathJax reader retain their own licences.",
            "Lesson 12 sections 6–8 retain CC-BY-4.0: adaptation of Shivani Goel, Rashi Lunia and Anwesh Ray, Diophantine approximation and the subspace theorem, arXiv:2502.00731v2. Source, attribution, licence link and changes appear in the lesson and SOURCE-NOTICES.md."
          ]
        },
        "lessons": [
          {
            "id": "TR-TRANS-01",
            "title": "Algebraic and transcendental numbers; Liouville's theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-01.md"
          },
          {
            "id": "TR-TRANS-02",
            "title": "Heights of algebraic numbers",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-02.md"
          },
          {
            "id": "TR-TRANS-03",
            "title": "Hermite and the transcendence of e",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-03.md"
          },
          {
            "id": "TR-TRANS-04",
            "title": "Lindemann, pi and the Lindemann–Weierstrass theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-04.md"
          },
          {
            "id": "TR-TRANS-05",
            "title": "Siegel's lemma, analytic estimates and the six exponentials theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-05.md"
          },
          {
            "id": "TR-TRANS-06",
            "title": "Gelfond–Schneider and Hilbert's seventh problem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-06.md"
          },
          {
            "id": "TR-TRANS-07",
            "title": "The Schneider–Lang criterion",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-07.md"
          },
          {
            "id": "TR-TRANS-08",
            "title": "Weierstrass functions, elliptic values and periods",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-08.md"
          },
          {
            "id": "TR-TRANS-09",
            "title": "Quasi-periods, complex multiplication and the modular invariant",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-09.md"
          },
          {
            "id": "TR-TRANS-10",
            "title": "The index method for rational approximation",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-10.md"
          },
          {
            "id": "TR-TRANS-11",
            "title": "Wronskians and Roth's rational-point lemma",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-11.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-11.md"
          },
          {
            "id": "TR-TRANS-12",
            "title": "Roth's theorem and its consequences",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-12.md"
          },
          {
            "id": "TR-TRANS-13",
            "title": "Mahler's classification of transcendental numbers",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-13.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-13.md"
          },
          {
            "id": "TR-TRANS-14",
            "title": "E-functions and the Siegel–Shidlovsky theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-14.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-14.md"
          },
          {
            "id": "TR-TRANS-15",
            "title": "Algebraic independence and Schanuel's conjecture",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/TR-TRANS-15.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/TR-TRANS/src/TR-TRANS-15.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "NOE-RAT",
        "kind": "advanced",
        "title": {
          "en": "Rational function fields and equations with prescribed group"
        },
        "summary": "Rational function fields, invariant coordinates, Galois specialization, generic polynomials, and absolute irreducibility through coefficient equations.",
        "subject": "algebra",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-RAT/",
        "status": "draft",
        "status_note": "Complete assigned course; writer mathematical self-check completed 2 October 2026. No independent review claimed.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original independently authored lesson text and diagrams.",
          "exceptions": [
            "Linked works and rendered font outlines retain their stated licences.",
            "Historical Noether papers are public domain; the maintained English translation retains its separate CC0 edition provenance."
          ]
        },
        "lessons": [
          {
            "id": "NOE-RAT-01",
            "title": "Subfields and subrings of rational function fields",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-RAT/NOE-RAT-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-RAT/"
          },
          {
            "id": "NOE-RAT-02",
            "title": "Noether's problem and generic polynomials",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-RAT/NOE-RAT-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-RAT/"
          },
          {
            "id": "NOE-RAT-03",
            "title": "Absolute irreducibility and Noether forms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-RAT/NOE-RAT-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/NOE-RAT/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "DG-CHAR",
        "kind": "advanced",
        "title": {
          "en": "Characteristic classes"
        },
        "summary": "Real and complex vector bundles, Thom and Euler classes, cohomology operations, Chern and Pontryagin classes, cobordism, the signature theorem, exotic spheres and Chern–Weil theory.",
        "subject": "differential-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/",
        "status": "draft",
        "status_note": "Drafts self-checked by the writing AI, GPT-6.1 Sol (OpenAI), at Ultra.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Independently authored teaching, proofs, examples and solved exercises.",
          "exceptions": [
            "The marked adaptation in Lemma 8.1 of Grassmannians and classifying maps retains David Michael Roberts’s CC BY 4.0 licence. Its attribution, source, change notice and complete retained licence accompany the chapter."
          ]
        },
        "lessons": [
          {
            "id": "DG-CHAR-01",
            "title": "Vector bundles and their constructions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/vector-bundles-and-their-constructions.md"
          },
          {
            "id": "DG-CHAR-03",
            "title": "Grassmannians and classifying maps",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/grassmannians-and-classifying-maps.md"
          },
          {
            "id": "DG-CHAR-06",
            "title": "Thom classes and Euler classes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/thom-classes-and-euler-classes.md"
          },
          {
            "id": "DG-CHAR-08",
            "title": "The Gysin sequence and projective splitting",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-08.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/gysin-sequence-and-projective-splitting.md"
          },
          {
            "id": "DG-CHAR-05",
            "title": "Steenrod squares and Stiefel–Whitney classes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/steenrod-squares-and-stiefel-whitney-classes.md"
          },
          {
            "id": "DG-CHAR-04",
            "title": "Schubert cells and universal Grassmannian cohomology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/schubert-cells-and-grassmannian-cohomology.md"
          },
          {
            "id": "DG-CHAR-02",
            "title": "Projective tangent bundles and their obstructions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/projective-tangent-bundles-and-obstructions.md"
          },
          {
            "id": "DG-CHAR-09",
            "title": "Chern classes and the integral universal ring",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-09.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/chern-classes-and-the-integral-universal-ring.md"
          },
          {
            "id": "DG-CHAR-10",
            "title": "Pontryagin classes and oriented universal cohomology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-10.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/pontryagin-classes-and-oriented-universal-cohomology.md"
          },
          {
            "id": "DG-CHAR-07",
            "title": "Manifold duality, the diagonal and Wu classes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-07.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/manifold-duality-the-diagonal-and-wu-classes.md"
          },
          {
            "id": "DG-CHAR-11",
            "title": "Characteristic numbers and projective-product independence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-11.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/characteristic-numbers-and-projective-product-independence.md"
          },
          {
            "id": "DG-CHAR-12",
            "title": "The oriented cobordism ring",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-12.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/the-oriented-cobordism-ring.md"
          },
          {
            "id": "DG-CHAR-08B",
            "title": "Frame fields and primary obstructions",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-08B.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/frame-fields-and-primary-obstructions.md"
          },
          {
            "id": "DG-CHAR-13",
            "title": "Thom spaces, transversality and the Pontryagin–Thom construction",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-13.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/thom-spaces-and-the-pontryagin-thom-construction.md"
          },
          {
            "id": "DG-CHAR-13B",
            "title": "Homotopy fibres and the Serre spectral sequence",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-13B.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/homotopy-fibres-and-the-serre-spectral-sequence.md"
          },
          {
            "id": "DG-CHAR-13C",
            "title": "Rational homotopy and the Hurewicz range",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-13C.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/rational-homotopy-and-the-hurewicz-range.md"
          },
          {
            "id": "DG-CHAR-13D",
            "title": "Rational oriented bordism and projective generators",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-13D.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/rational-oriented-bordism-and-projective-generators.md"
          },
          {
            "id": "DG-CHAR-14",
            "title": "Multiplicative sequences and the signature theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-14.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/multiplicative-sequences-and-the-signature-theorem.md"
          },
          {
            "id": "DG-CHAR-14B",
            "title": "Odd-prime reduced powers and the Wu classes",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/DG-CHAR-14B.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-CHAR/odd-prime-reduced-powers-and-wu-classes.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "DG-FND",
        "kind": "advanced",
        "title": {
          "en": "Connections, curvature and holonomy"
        },
        "summary": "Bundles and parallel transport lead to curvature, holonomy, geodesics and completeness, comparison geometry, Kähler and symmetric spaces, and the Weil homomorphism.",
        "subject": "differential-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol, at Ultra effort.",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "CC0-1.0",
          "scope": "Original lesson text, mathematical figures and reproducible figure sources written for this course, excluding the attributed components listed below.",
          "exceptions": [
            "Clifton's half-cylinder: a metric connection with torsion, in Completeness and the hopf rinow theorem, Entire attributed subsection in Section 6: adapted from Jacob W. Erickson, Benjamin McKay, Inequivalence of the various notions of completeness for Cartan geometries, arXiv:2606.00354v1, 29 May 2026, Section 4.1; retains CC-BY-4.0 (https://creativecommons.org/licenses/by/4.0/). Source and changes are credited at the component.",
            "Intrinsic Christoffel symbols and the theorema egregium, in Submanifolds and hypersurfaces, The two explicitly delimited statement-and-proof blockquotes in Section 1: adapted from Matthias Weber, Differential Geometry of Curves and Surfaces, 7 January 2026, Theorems 3.5.3 and 3.5.6, printed pages294–295 and297–298 (PDF295–296 and298–299); retains CC-BY-NC-SA-4.0 (https://creativecommons.org/licenses/by-nc-sa/4.0/). Source and changes are credited at the component.",
            "Sodré’s uniform spectral lower bound, in Jacobi fields conjugate points and the morse index theorem, The complete attributed Theorem2.2 statement and proof blockquote in Section8: adapted from Eduardo V. Sodré, Revisiting Arnold’s topological proof of the Morse index theorem, arXiv:2307.00655v1,2July2023, Theorem2.2,p.5; retains CC-BY-4.0 (https://creativecommons.org/licenses/by/4.0/). Source and changes are credited at the component.",
            "Kamtue’s Bonnet–Myers diameter proof, in Comparison theorems cut loci and curvature and topology, The complete attributed Theorem 4.1 statement and proof blockquote in Section 4: adapted from Supanat Kamtue, Discrete curvatures motivated from Riemannian geometry and optimal transport: Bonnet-Myers-type diameter bounds and rigidity, Doctoral thesis, Durham University, 2021, Chapter 4, Theorem 4.1, printed pp. 29–31 (PDF 42–44); retains CC-BY-3.0 (https://creativecommons.org/licenses/by/3.0/). Source and changes are credited at the component."
          ]
        },
        "lessons": [
          {
            "id": "local-tools-for-bundles-and-transport",
            "title": "Local tools for bundles and transport",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/local-tools-for-bundles-and-transport.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/src/local-tools-for-bundles-and-transport.md"
          },
          {
            "id": "principal-bundles-and-associated-bundles",
            "title": "Principal bundles and associated bundles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/principal-bundles-and-associated-bundles.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/src/principal-bundles-and-associated-bundles.md"
          },
          {
            "id": "connections-and-parallel-transport",
            "title": "Connections and parallel transport",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/connections-and-parallel-transport.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/src/connections-and-parallel-transport.md"
          },
          {
            "id": "curvature-and-holonomy-groups",
            "title": "Curvature and holonomy groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/curvature-and-holonomy-groups.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/src/curvature-and-holonomy-groups.md"
          },
          {
            "id": "reduction-and-the-holonomy-theorem",
            "title": "Reduction and the holonomy theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/reduction-and-the-holonomy-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/src/reduction-and-the-holonomy-theorem.md"
          },
          {
            "id": "flat-connections-and-infinitesimal-holonomy",
            "title": "Flat connections and infinitesimal holonomy",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/flat-connections-and-infinitesimal-holonomy.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/src/flat-connections-and-infinitesimal-holonomy.md"
          },
          {
            "id": "invariant-connections-on-homogeneous-bundles",
            "title": "Invariant connections on homogeneous bundles",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/invariant-connections-on-homogeneous-bundles.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/src/invariant-connections-on-homogeneous-bundles.md"
          },
          {
            "id": "linear-and-affine-connections",
            "title": "Linear and affine connections",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/linear-and-affine-connections.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/src/linear-and-affine-connections.md"
          },
          {
            "id": "geodesics-normal-coordinates-and-curvature",
            "title": "Geodesics, normal coordinates and curvature",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/geodesics-normal-coordinates-and-curvature.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/src/geodesics-normal-coordinates-and-curvature.md"
          },
          {
            "id": "riemannian-connections-and-convex-neighbourhoods",
            "title": "Riemannian connections and convex neighbourhoods",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/riemannian-connections-and-convex-neighbourhoods.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/src/riemannian-connections-and-convex-neighbourhoods.md"
          },
          {
            "id": "completeness-and-the-hopf-rinow-theorem",
            "title": "Completeness and the Hopf–Rinow theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/completeness-and-the-hopf-rinow-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/src/completeness-and-the-hopf-rinow-theorem.md"
          },
          {
            "id": "holonomy-and-the-de-rham-decomposition-theorem",
            "title": "Holonomy and the de Rham decomposition theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/holonomy-and-the-de-rham-decomposition-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/src/holonomy-and-the-de-rham-decomposition-theorem.md"
          },
          {
            "id": "sectional-curvature-and-space-forms",
            "title": "Sectional curvature and space forms",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/sectional-curvature-and-space-forms.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/"
          },
          {
            "id": "affine-transformations-and-the-isometry-group",
            "title": "Affine transformations and the isometry group",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/affine-transformations-and-the-isometry-group.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/"
          },
          {
            "id": "holonomy-killing-fields-and-analytic-extension",
            "title": "Holonomy, Killing fields and analytic extension",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/holonomy-killing-fields-and-analytic-extension.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/"
          },
          {
            "id": "submanifolds-and-hypersurfaces",
            "title": "Submanifolds and hypersurfaces",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/submanifolds-and-hypersurfaces.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/"
          },
          {
            "id": "jacobi-fields-conjugate-points-and-the-morse-index-theorem",
            "title": "Jacobi fields, conjugate points and the Morse index theorem",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/jacobi-fields-conjugate-points-and-the-morse-index-theorem.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/"
          },
          {
            "id": "comparison-theorems-cut-loci-and-curvature-and-topology",
            "title": "Comparison theorems, cut loci and curvature and topology",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/DG-FND/comparison-theorems-cut-loci-and-curvature-and-topology.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      },
      {
        "id": "AG-RG",
        "kind": "advanced",
        "title": {
          "en": "Reductive group schemes"
        },
        "summary": "Maximal tori, regular elements and centralizers, rank-one groups, root data and Bruhat cells, integral pinned classification, automorphisms, forms and parabolics over a base.",
        "subject": "algebraic-geometry",
        "content_language": "en",
        "translations": [],
        "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/",
        "status": "draft",
        "status_note": "Self-checked by the writing AI, GPT-6.1 Sol (OpenAI).",
        "authorship": "GPT-6.1 Sol (OpenAI), in Codex, at the Ultra setting (maximum reasoning effort)",
        "licence": {
          "spdx": "GFDL-1.2-only",
          "scope": "Original exposition is CC0. The cumulative collection and lessons three and five include adapted Stacks proofs under GFDL 1.2.",
          "exceptions": [
            "Adapted whole Stacks proofs: Tag 0ABS in lesson three and Tag 09N9 in lesson five. Their collected lessons retain GFDL 1.2."
          ]
        },
        "lessons": [
          {
            "id": "AG-RG-01",
            "title": "Tori, maximal tori and their conjugacy",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/AG-RG-01.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/AG-RG-01.md"
          },
          {
            "id": "AG-RG-02",
            "title": "Regular elements and centralizers",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/AG-RG-02.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/AG-RG-02.md"
          },
          {
            "id": "AG-RG-03",
            "title": "Roots and reductive groups of rank one",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/AG-RG-03.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/AG-RG-03.md"
          },
          {
            "id": "AG-RG-04",
            "title": "Root data, Weyl chambers and the Bruhat decomposition",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/AG-RG-04.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/AG-RG-04.md"
          },
          {
            "id": "AG-RG-05",
            "title": "Pinnings and the classification of split reductive groups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/AG-RG-05.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/AG-RG-05.md"
          },
          {
            "id": "AG-RG-06",
            "title": "Automorphisms, forms and parabolic subgroups",
            "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/AG-RG-06.html",
            "editable_source": "https://kokunoyumeto.github.io/open-math-courses-public/courses/AG-RG/AG-RG-06.md"
          }
        ],
        "source_snapshot": "801f186833b9811fa826575ef0717e78a5047ab0",
        "portable_editions": []
      }
    ]
  },
  "edges": [
    {
      "id": "preparation_course:core:A10->core:A00",
      "from": "core:A10",
      "to": "core:A00",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:A20->core:A10",
      "from": "core:A20",
      "to": "core:A10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:A30->core:A20",
      "from": "core:A30",
      "to": "core:A20",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B10->core:A30",
      "from": "core:B10",
      "to": "core:A30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B20->core:A30",
      "from": "core:B20",
      "to": "core:A30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B30->core:B20",
      "from": "core:B30",
      "to": "core:B20",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B40->core:A30",
      "from": "core:B40",
      "to": "core:A30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B40->core:B10",
      "from": "core:B40",
      "to": "core:B10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B50->core:B30",
      "from": "core:B50",
      "to": "core:B30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B50->core:B40",
      "from": "core:B50",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B60->core:B50",
      "from": "core:B60",
      "to": "core:B50",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B70->core:B30",
      "from": "core:B70",
      "to": "core:B30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B70->core:B40",
      "from": "core:B70",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B80->core:A30",
      "from": "core:B80",
      "to": "core:A30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B90->core:B30",
      "from": "core:B90",
      "to": "core:B30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B95->core:A30",
      "from": "core:B95",
      "to": "core:A30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:B95->core:B90",
      "from": "core:B95",
      "to": "core:B90",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C10->core:B10",
      "from": "core:C10",
      "to": "core:B10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C10->core:B30",
      "from": "core:C10",
      "to": "core:B30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C20->core:C10",
      "from": "core:C20",
      "to": "core:C10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C20->core:B50",
      "from": "core:C20",
      "to": "core:B50",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C30->core:B10",
      "from": "core:C30",
      "to": "core:B10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C30->core:B40",
      "from": "core:C30",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C40->core:C30",
      "from": "core:C40",
      "to": "core:C30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C50->core:C20",
      "from": "core:C50",
      "to": "core:C20",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C60->core:B10",
      "from": "core:C60",
      "to": "core:B10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C60->core:C30",
      "from": "core:C60",
      "to": "core:C30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C70->core:B10",
      "from": "core:C70",
      "to": "core:B10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C80->core:B10",
      "from": "core:C80",
      "to": "core:B10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C90->core:B10",
      "from": "core:C90",
      "to": "core:B10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C90->core:C10",
      "from": "core:C90",
      "to": "core:C10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C100->core:B10",
      "from": "core:C100",
      "to": "core:B10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C100->core:B40",
      "from": "core:C100",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C100->core:B60",
      "from": "core:C100",
      "to": "core:B60",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C110->core:B30",
      "from": "core:C110",
      "to": "core:B30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C110->core:B40",
      "from": "core:C110",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C110->core:B80",
      "from": "core:C110",
      "to": "core:B80",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C110->core:C10",
      "from": "core:C110",
      "to": "core:C10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C120->core:B70",
      "from": "core:C120",
      "to": "core:B70",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C120->core:B80",
      "from": "core:C120",
      "to": "core:B80",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C120->core:C10",
      "from": "core:C120",
      "to": "core:C10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C130->core:B40",
      "from": "core:C130",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C130->core:B80",
      "from": "core:C130",
      "to": "core:B80",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C130->core:C70",
      "from": "core:C130",
      "to": "core:C70",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C140->core:B90",
      "from": "core:C140",
      "to": "core:B90",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C140->core:B95",
      "from": "core:C140",
      "to": "core:B95",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C140->core:B40",
      "from": "core:C140",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:C140->core:C10",
      "from": "core:C140",
      "to": "core:C10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D10->core:C20",
      "from": "core:D10",
      "to": "core:C20",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D10->core:C90",
      "from": "core:D10",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D20->core:D10",
      "from": "core:D20",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D20->core:B40",
      "from": "core:D20",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D30->core:D10",
      "from": "core:D30",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D30->core:B90",
      "from": "core:D30",
      "to": "core:B90",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D30->core:C140",
      "from": "core:D30",
      "to": "core:C140",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D40->core:B70",
      "from": "core:D40",
      "to": "core:B70",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D40->core:C110",
      "from": "core:D40",
      "to": "core:C110",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D40->core:D10",
      "from": "core:D40",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D40->core:D20",
      "from": "core:D40",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D50->core:C90",
      "from": "core:D50",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D50->core:B60",
      "from": "core:D50",
      "to": "core:B60",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D50->core:C30",
      "from": "core:D50",
      "to": "core:C30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D60->core:C90",
      "from": "core:D60",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D60->core:C30",
      "from": "core:D60",
      "to": "core:C30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D70->core:C40",
      "from": "core:D70",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D70->core:B40",
      "from": "core:D70",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D80->core:C30",
      "from": "core:D80",
      "to": "core:C30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D80->core:C80",
      "from": "core:D80",
      "to": "core:C80",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D80->core:D70",
      "from": "core:D80",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D90->core:C110",
      "from": "core:D90",
      "to": "core:C110",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D90->core:C130",
      "from": "core:D90",
      "to": "core:C130",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D90->core:D20",
      "from": "core:D90",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D100->core:D70",
      "from": "core:D100",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D100->core:D80",
      "from": "core:D100",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D100->core:C90",
      "from": "core:D100",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D100->core:D60",
      "from": "core:D100",
      "to": "core:D60",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D110->core:B10",
      "from": "core:D110",
      "to": "core:B10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D110->core:B40",
      "from": "core:D110",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D110->core:C10",
      "from": "core:D110",
      "to": "core:C10",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D110->core:C30",
      "from": "core:D110",
      "to": "core:C30",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D120->core:C20",
      "from": "core:D120",
      "to": "core:C20",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D120->core:C40",
      "from": "core:D120",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:core:D120->core:B80",
      "from": "core:D120",
      "to": "core:B80",
      "relation": "preparation_course",
      "evidence": {
        "input": "core-courses.js",
        "field": "prerequisites",
        "declared_by": "core_programme"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:HA-LCA->core:C90",
      "from": "advanced:HA-LCA",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:HA-LCA->core:D10",
      "from": "advanced:HA-LCA",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:HA-LCA->core:D20",
      "from": "advanced:HA-LCA",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:HA-LCA->advanced:harmonic-analysis-on-locally-compact-groups",
      "from": "advanced:HA-LCA",
      "to": "advanced:harmonic-analysis-on-locally-compact-groups",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:HA-LCA->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:HA-LCA",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:HA-LCA->advanced:function-algebras-and-approximation",
      "from": "advanced:HA-LCA",
      "to": "advanced:function-algebras-and-approximation",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:HA-LCA->advanced:OA-FLOW",
      "from": "advanced:HA-LCA",
      "to": "advanced:OA-FLOW",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:HA-LCA->advanced:OA-MOD",
      "from": "advanced:HA-LCA",
      "to": "advanced:OA-MOD",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ANT->core:C30",
      "from": "advanced:NT-ANT",
      "to": "core:C30",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ANT->core:C40",
      "from": "advanced:NT-ANT",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ANT->core:C60",
      "from": "advanced:NT-ANT",
      "to": "core:C60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ANT->core:D70",
      "from": "advanced:NT-ANT",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ANT->core:B40",
      "from": "advanced:NT-ANT",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-FSE->core:D80",
      "from": "advanced:AG-FSE",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-FSE->core:D100",
      "from": "advanced:AG-FSE",
      "to": "core:D100",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:foundations-of-von-neumann-algebras->core:D20",
      "from": "advanced:foundations-of-von-neumann-algebras",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:measurable-fields-and-direct-integrals->core:D10",
      "from": "advanced:measurable-fields-and-direct-integrals",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:measurable-fields-and-direct-integrals->core:D20",
      "from": "advanced:measurable-fields-and-direct-integrals",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:measurable-fields-and-direct-integrals->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:measurable-fields-and-direct-integrals",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:tensor-products-of-operator-algebras->core:D20",
      "from": "advanced:tensor-products-of-operator-algebras",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:tensor-products-of-operator-algebras->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:tensor-products-of-operator-algebras",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:OA-MOD->core:D10",
      "from": "advanced:OA-MOD",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:OA-MOD->core:D20",
      "from": "advanced:OA-MOD",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:OA-MOD->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:OA-MOD",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:hilbert-algebras->core:D20",
      "from": "advanced:hilbert-algebras",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:hilbert-algebras->advanced:OA-MOD",
      "from": "advanced:hilbert-algebras",
      "to": "advanced:OA-MOD",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:hilbert-algebras->advanced:harmonic-analysis-on-locally-compact-groups",
      "from": "advanced:hilbert-algebras",
      "to": "advanced:harmonic-analysis-on-locally-compact-groups",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:hilbert-algebras->advanced:tensor-products-of-operator-algebras",
      "from": "advanced:hilbert-algebras",
      "to": "advanced:tensor-products-of-operator-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:hilbert-algebras->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:hilbert-algebras",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:analytic-elements-strips-and-kms->core:C50",
      "from": "advanced:analytic-elements-strips-and-kms",
      "to": "core:C50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:analytic-elements-strips-and-kms->core:D20",
      "from": "advanced:analytic-elements-strips-and-kms",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:analytic-elements-strips-and-kms->advanced:OA-MOD",
      "from": "advanced:analytic-elements-strips-and-kms",
      "to": "advanced:OA-MOD",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:analytic-elements-strips-and-kms->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:analytic-elements-strips-and-kms",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:traces-and-noncommutative-integration->core:D10",
      "from": "advanced:traces-and-noncommutative-integration",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:traces-and-noncommutative-integration->core:D20",
      "from": "advanced:traces-and-noncommutative-integration",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:traces-and-noncommutative-integration->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:traces-and-noncommutative-integration",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:traces-and-noncommutative-integration->advanced:OA-MOD",
      "from": "advanced:traces-and-noncommutative-integration",
      "to": "advanced:OA-MOD",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:OA-FLOW->core:D10",
      "from": "advanced:OA-FLOW",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:OA-FLOW->core:D20",
      "from": "advanced:OA-FLOW",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:OA-FLOW->advanced:OA-MOD",
      "from": "advanced:OA-FLOW",
      "to": "advanced:OA-MOD",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:OA-FLOW->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:OA-FLOW",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:type-iii-factors->core:D10",
      "from": "advanced:type-iii-factors",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:type-iii-factors->core:D20",
      "from": "advanced:type-iii-factors",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:type-iii-factors->advanced:OA-MOD",
      "from": "advanced:type-iii-factors",
      "to": "advanced:OA-MOD",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:type-iii-factors->advanced:traces-and-noncommutative-integration",
      "from": "advanced:type-iii-factors",
      "to": "advanced:traces-and-noncommutative-integration",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:type-iii-factors->advanced:tensor-products-of-operator-algebras",
      "from": "advanced:type-iii-factors",
      "to": "advanced:tensor-products-of-operator-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:type-iii-factors->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:type-iii-factors",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:injective-factors->core:D10",
      "from": "advanced:injective-factors",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:injective-factors->core:D20",
      "from": "advanced:injective-factors",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:injective-factors->advanced:type-iii-factors",
      "from": "advanced:injective-factors",
      "to": "advanced:type-iii-factors",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:injective-factors->advanced:measurable-fields-and-direct-integrals",
      "from": "advanced:injective-factors",
      "to": "advanced:measurable-fields-and-direct-integrals",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:injective-factors->advanced:harmonic-analysis-on-locally-compact-groups",
      "from": "advanced:injective-factors",
      "to": "advanced:harmonic-analysis-on-locally-compact-groups",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:injective-factors->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:injective-factors",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:injective-factors->advanced:OA-MOD",
      "from": "advanced:injective-factors",
      "to": "advanced:OA-MOD",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:injective-factors->advanced:traces-and-noncommutative-integration",
      "from": "advanced:injective-factors",
      "to": "advanced:traces-and-noncommutative-integration",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:injective-factors->advanced:tensor-products-of-operator-algebras",
      "from": "advanced:injective-factors",
      "to": "advanced:tensor-products-of-operator-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:entropy-of-automorphisms->core:D20",
      "from": "advanced:entropy-of-automorphisms",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:entropy-of-automorphisms->advanced:traces-and-noncommutative-integration",
      "from": "advanced:entropy-of-automorphisms",
      "to": "advanced:traces-and-noncommutative-integration",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:entropy-of-automorphisms->advanced:OA-MOD",
      "from": "advanced:entropy-of-automorphisms",
      "to": "advanced:OA-MOD",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:entropy-of-automorphisms->advanced:analytic-elements-strips-and-kms",
      "from": "advanced:entropy-of-automorphisms",
      "to": "advanced:analytic-elements-strips-and-kms",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:entropy-of-automorphisms->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:entropy-of-automorphisms",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:noncommutative-integration->core:D10",
      "from": "advanced:noncommutative-integration",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:noncommutative-integration->core:D20",
      "from": "advanced:noncommutative-integration",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:noncommutative-integration->advanced:OA-MOD",
      "from": "advanced:noncommutative-integration",
      "to": "advanced:OA-MOD",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:noncommutative-integration->advanced:measurable-fields-and-direct-integrals",
      "from": "advanced:noncommutative-integration",
      "to": "advanced:measurable-fields-and-direct-integrals",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:noncommutative-integration->advanced:hilbert-algebras",
      "from": "advanced:noncommutative-integration",
      "to": "advanced:hilbert-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:noncommutative-integration->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:noncommutative-integration",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:noncommutative-integration->advanced:harmonic-analysis-on-locally-compact-groups",
      "from": "advanced:noncommutative-integration",
      "to": "advanced:harmonic-analysis-on-locally-compact-groups",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:noncommutative-integration->advanced:tensor-products-of-operator-algebras",
      "from": "advanced:noncommutative-integration",
      "to": "advanced:tensor-products-of-operator-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NCG-CYCLIC->core:D20",
      "from": "advanced:NCG-CYCLIC",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NCG-CYCLIC->core:D50",
      "from": "advanced:NCG-CYCLIC",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NCG-CYCLIC->core:D80",
      "from": "advanced:NCG-CYCLIC",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NCG-CYCLIC->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:NCG-CYCLIC",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NCG-LOCAL-INDEX->core:D20",
      "from": "advanced:NCG-LOCAL-INDEX",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NCG-LOCAL-INDEX->core:D50",
      "from": "advanced:NCG-LOCAL-INDEX",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NCG-LOCAL-INDEX->advanced:AN-03",
      "from": "advanced:NCG-LOCAL-INDEX",
      "to": "advanced:AN-03",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NCG-LOCAL-INDEX->advanced:NCG-CYCLIC",
      "from": "advanced:NCG-LOCAL-INDEX",
      "to": "advanced:NCG-CYCLIC",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NCG-LOCAL-INDEX->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:NCG-LOCAL-INDEX",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:function-algebras-and-approximation->core:C10",
      "from": "advanced:function-algebras-and-approximation",
      "to": "core:C10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:function-algebras-and-approximation->core:C90",
      "from": "advanced:function-algebras-and-approximation",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:harmonic-analysis-on-locally-compact-groups->core:C90",
      "from": "advanced:harmonic-analysis-on-locally-compact-groups",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:harmonic-analysis-on-locally-compact-groups->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:harmonic-analysis-on-locally-compact-groups",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:harmonic-analysis-on-locally-compact-groups->advanced:function-algebras-and-approximation",
      "from": "advanced:harmonic-analysis-on-locally-compact-groups",
      "to": "advanced:function-algebras-and-approximation",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AN-03->core:D10",
      "from": "advanced:AN-03",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AN-03->core:D20",
      "from": "advanced:AN-03",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AN-03->core:D40",
      "from": "advanced:AN-03",
      "to": "core:D40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AN-03->core:D50",
      "from": "advanced:AN-03",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:totally-characteristic-operators->core:D20",
      "from": "advanced:totally-characteristic-operators",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:totally-characteristic-operators->core:D40",
      "from": "advanced:totally-characteristic-operators",
      "to": "core:D40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:totally-characteristic-operators->advanced:AN-03",
      "from": "advanced:totally-characteristic-operators",
      "to": "advanced:AN-03",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:index-theory-of-elliptic-operators->core:D20",
      "from": "advanced:index-theory-of-elliptic-operators",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:index-theory-of-elliptic-operators->core:D50",
      "from": "advanced:index-theory-of-elliptic-operators",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:index-theory-of-elliptic-operators->advanced:AN-03",
      "from": "advanced:index-theory-of-elliptic-operators",
      "to": "advanced:AN-03",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:derived-categories-and-sheaf-operations->core:D80",
      "from": "advanced:derived-categories-and-sheaf-operations",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:SH-02->core:D50",
      "from": "advanced:SH-02",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:SH-02->core:D60",
      "from": "advanced:SH-02",
      "to": "core:D60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:SH-02->core:D80",
      "from": "advanced:SH-02",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:SH-02->advanced:derived-categories-and-sheaf-operations",
      "from": "advanced:SH-02",
      "to": "advanced:derived-categories-and-sheaf-operations",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AN-06->core:D10",
      "from": "advanced:AN-06",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AN-06->core:D20",
      "from": "advanced:AN-06",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AN-06->core:D40",
      "from": "advanced:AN-06",
      "to": "core:D40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AN-06->core:D50",
      "from": "advanced:AN-06",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AN-06->advanced:AN-03",
      "from": "advanced:AN-06",
      "to": "advanced:AN-03",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:the-field-with-one-element->core:D80",
      "from": "advanced:the-field-with-one-element",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:the-field-with-one-element->core:D100",
      "from": "advanced:the-field-with-one-element",
      "to": "core:D100",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-GS->core:C40",
      "from": "advanced:AG-GS",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-GS->core:D70",
      "from": "advanced:AG-GS",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-GS->core:D80",
      "from": "advanced:AG-GS",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:hilbert-c-star-modules-and-morita-equivalence->core:D20",
      "from": "advanced:hilbert-c-star-modules-and-morita-equivalence",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:hilbert-c-star-modules-and-morita-equivalence->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:hilbert-c-star-modules-and-morita-equivalence",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-LTF->core:D80",
      "from": "advanced:AG-LTF",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-LTF->core:D100",
      "from": "advanced:AG-LTF",
      "to": "core:D100",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-LTF->advanced:derived-categories-and-sheaf-operations",
      "from": "advanced:AG-LTF",
      "to": "advanced:derived-categories-and-sheaf-operations",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-LTF->advanced:the-field-with-one-element",
      "from": "advanced:AG-LTF",
      "to": "advanced:the-field-with-one-element",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-DMOD->core:D100",
      "from": "advanced:GL-DMOD",
      "to": "core:D100",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-DMOD->core:D80",
      "from": "advanced:GL-DMOD",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-DMOD->core:D70",
      "from": "advanced:GL-DMOD",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-DMOD->core:D60",
      "from": "advanced:GL-DMOD",
      "to": "core:D60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-DMOD->core:C50",
      "from": "advanced:GL-DMOD",
      "to": "core:C50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-DMOD->advanced:derived-categories-and-sheaf-operations",
      "from": "advanced:GL-DMOD",
      "to": "advanced:derived-categories-and-sheaf-operations",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-DMOD->advanced:SH-02",
      "from": "advanced:GL-DMOD",
      "to": "advanced:SH-02",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-PERV->core:D60",
      "from": "advanced:GL-PERV",
      "to": "core:D60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-PERV->core:D80",
      "from": "advanced:GL-PERV",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-PERV->core:D100",
      "from": "advanced:GL-PERV",
      "to": "core:D100",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-PERV->advanced:derived-categories-and-sheaf-operations",
      "from": "advanced:GL-PERV",
      "to": "advanced:derived-categories-and-sheaf-operations",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-PERV->advanced:SH-02",
      "from": "advanced:GL-PERV",
      "to": "advanced:SH-02",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-DFG->core:C90",
      "from": "advanced:AG-DFG",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-DFG->core:D80",
      "from": "advanced:AG-DFG",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-DFG->core:D100",
      "from": "advanced:AG-DFG",
      "to": "core:D100",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-HP->core:D80",
      "from": "advanced:AG-HP",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-HP->core:D100",
      "from": "advanced:AG-HP",
      "to": "core:D100",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-HP->advanced:derived-categories-and-sheaf-operations",
      "from": "advanced:AG-HP",
      "to": "advanced:derived-categories-and-sheaf-operations",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-GLC->core:D60",
      "from": "advanced:GL-GLC",
      "to": "core:D60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-GLC->core:D80",
      "from": "advanced:GL-GLC",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-GLC->core:D100",
      "from": "advanced:GL-GLC",
      "to": "core:D100",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-GAL->core:C40",
      "from": "advanced:LG-GAL",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-GAL->core:D70",
      "from": "advanced:LG-GAL",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-GAL->core:C90",
      "from": "advanced:LG-GAL",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:ag-etale-cohomology->core:C90",
      "from": "advanced:ag-etale-cohomology",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:ag-etale-cohomology->core:D80",
      "from": "advanced:ag-etale-cohomology",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:ag-etale-cohomology->advanced:derived-categories-and-sheaf-operations",
      "from": "advanced:ag-etale-cohomology",
      "to": "advanced:derived-categories-and-sheaf-operations",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ADL->core:C50",
      "from": "advanced:NT-ADL",
      "to": "core:C50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ADL->core:C90",
      "from": "advanced:NT-ADL",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ADL->core:D10",
      "from": "advanced:NT-ADL",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ADL->core:D20",
      "from": "advanced:NT-ADL",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ADL->advanced:harmonic-analysis-on-locally-compact-groups",
      "from": "advanced:NT-ADL",
      "to": "advanced:harmonic-analysis-on-locally-compact-groups",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-ABS->core:C40",
      "from": "advanced:NOE-ABS",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-ABS->core:C60",
      "from": "advanced:NOE-ABS",
      "to": "core:C60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-ABS->core:D70",
      "from": "advanced:NOE-ABS",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-LLC->core:C40",
      "from": "advanced:LG-LLC",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-LLC->core:D70",
      "from": "advanced:LG-LLC",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-LLC->advanced:LG-GAL",
      "from": "advanced:LG-LLC",
      "to": "advanced:LG-GAL",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-CP->core:D10",
      "from": "advanced:KT-CP",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-CP->core:D20",
      "from": "advanced:KT-CP",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:representations-of-compact-groups->core:D10",
      "from": "advanced:representations-of-compact-groups",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:representations-of-compact-groups->core:D20",
      "from": "advanced:representations-of-compact-groups",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:representations-of-compact-groups->core:D50",
      "from": "advanced:representations-of-compact-groups",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:RT-FIN->core:B40",
      "from": "advanced:RT-FIN",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:RT-FIN->core:C30",
      "from": "advanced:RT-FIN",
      "to": "core:C30",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:RT-FIN->core:C40",
      "from": "advanced:RT-FIN",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-CA->core:C40",
      "from": "advanced:AG-CA",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-CA->core:D70",
      "from": "advanced:AG-CA",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-LOC->core:C10",
      "from": "advanced:NT-LOC",
      "to": "core:C10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-LOC->core:C40",
      "from": "advanced:NT-LOC",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-LOC->core:C90",
      "from": "advanced:NT-LOC",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-LOC->core:D10",
      "from": "advanced:NT-LOC",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-LOC->core:D70",
      "from": "advanced:NT-LOC",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-LOC->advanced:harmonic-analysis-on-locally-compact-groups",
      "from": "advanced:NT-LOC",
      "to": "advanced:harmonic-analysis-on-locally-compact-groups",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-LCL->core:D80",
      "from": "advanced:AG-LCL",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-LCL->core:D100",
      "from": "advanced:AG-LCL",
      "to": "core:D100",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-LCL->advanced:derived-categories-and-sheaf-operations",
      "from": "advanced:AG-LCL",
      "to": "advanced:derived-categories-and-sheaf-operations",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:automorphic-forms-and-representations-of-gl2->core:D10",
      "from": "advanced:automorphic-forms-and-representations-of-gl2",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:automorphic-forms-and-representations-of-gl2->core:D20",
      "from": "advanced:automorphic-forms-and-representations-of-gl2",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:automorphic-forms-and-representations-of-gl2->core:C90",
      "from": "advanced:automorphic-forms-and-representations-of-gl2",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:automorphic-forms-and-representations-of-gl2->advanced:harmonic-analysis-on-locally-compact-groups",
      "from": "advanced:automorphic-forms-and-representations-of-gl2",
      "to": "advanced:harmonic-analysis-on-locally-compact-groups",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LIE-TG->core:B50",
      "from": "advanced:LIE-TG",
      "to": "core:B50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LIE-TG->core:B70",
      "from": "advanced:LIE-TG",
      "to": "core:B70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LIE-TG->core:C50",
      "from": "advanced:LIE-TG",
      "to": "core:C50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LIE-TG->core:D50",
      "from": "advanced:LIE-TG",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-AS->core:D60",
      "from": "advanced:AG-AS",
      "to": "core:D60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-AS->core:D80",
      "from": "advanced:AG-AS",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-OPK->core:D20",
      "from": "advanced:KT-OPK",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-OPK->core:C90",
      "from": "advanced:KT-OPK",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-OPK->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:KT-OPK",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-MF->core:C50",
      "from": "advanced:LG-MF",
      "to": "core:C50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-MF->core:C60",
      "from": "advanced:LG-MF",
      "to": "core:C60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-MF->core:C40",
      "from": "advanced:LG-MF",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-MF->core:C90",
      "from": "advanced:LG-MF",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-MF->core:D10",
      "from": "advanced:LG-MF",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-MF->core:D60",
      "from": "advanced:LG-MF",
      "to": "core:D60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-MF->advanced:harmonic-analysis-on-locally-compact-groups",
      "from": "advanced:LG-MF",
      "to": "advanced:harmonic-analysis-on-locally-compact-groups",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-MF->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:LG-MF",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:LG-MF->advanced:function-algebras-and-approximation",
      "from": "advanced:LG-MF",
      "to": "advanced:function-algebras-and-approximation",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-HYP->core:B40",
      "from": "advanced:NOE-HYP",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-HYP->core:C30",
      "from": "advanced:NOE-HYP",
      "to": "core:C30",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-HYP->core:C40",
      "from": "advanced:NOE-HYP",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-HYP->core:D70",
      "from": "advanced:NOE-HYP",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:RT-LIE->core:B40",
      "from": "advanced:RT-LIE",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:RT-LIE->core:C40",
      "from": "advanced:RT-LIE",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:SH-03->core:D50",
      "from": "advanced:SH-03",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:SH-03->core:D60",
      "from": "advanced:SH-03",
      "to": "core:D60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:SH-03->core:D80",
      "from": "advanced:SH-03",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:SH-03->advanced:derived-categories-and-sheaf-operations",
      "from": "advanced:SH-03",
      "to": "advanced:derived-categories-and-sheaf-operations",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:SH-03->advanced:SH-02",
      "from": "advanced:SH-03",
      "to": "advanced:SH-02",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-SYM->core:B50",
      "from": "advanced:NOE-SYM",
      "to": "core:B50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-SYM->core:B70",
      "from": "advanced:NOE-SYM",
      "to": "core:B70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-SYM->core:D40",
      "from": "advanced:NOE-SYM",
      "to": "core:D40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-SYM->core:D50",
      "from": "advanced:NOE-SYM",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-EXPF->core:C50",
      "from": "advanced:NT-EXPF",
      "to": "core:C50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-EXPF->core:D10",
      "from": "advanced:NT-EXPF",
      "to": "core:D10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-EXPF->core:D20",
      "from": "advanced:NT-EXPF",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-EXPF->advanced:the-field-with-one-element",
      "from": "advanced:NT-EXPF",
      "to": "advanced:the-field-with-one-element",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-KK->core:D20",
      "from": "advanced:KT-KK",
      "to": "core:D20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-KK->core:D50",
      "from": "advanced:KT-KK",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-KK->core:D60",
      "from": "advanced:KT-KK",
      "to": "core:D60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-KK->advanced:NCG-LOCAL-INDEX",
      "from": "advanced:KT-KK",
      "to": "advanced:NCG-LOCAL-INDEX",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-KK->advanced:AN-03",
      "from": "advanced:KT-KK",
      "to": "advanced:AN-03",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-KK->advanced:index-theory-of-elliptic-operators",
      "from": "advanced:KT-KK",
      "to": "advanced:index-theory-of-elliptic-operators",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-KK->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:KT-KK",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:KT-KK->advanced:NCG-CYCLIC",
      "from": "advanced:KT-KK",
      "to": "advanced:NCG-CYCLIC",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ZETA->core:C10",
      "from": "advanced:NT-ZETA",
      "to": "core:C10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ZETA->core:C20",
      "from": "advanced:NT-ZETA",
      "to": "core:C20",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ZETA->core:C50",
      "from": "advanced:NT-ZETA",
      "to": "core:C50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-ZETA->core:C60",
      "from": "advanced:NT-ZETA",
      "to": "core:C60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-MO->core:D80",
      "from": "advanced:AG-MO",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-SS->core:C90",
      "from": "advanced:AG-SS",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-SS->core:D80",
      "from": "advanced:AG-SS",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-SS->advanced:AG-CA",
      "from": "advanced:AG-SS",
      "to": "advanced:AG-CA",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-QC->core:D80",
      "from": "advanced:AG-QC",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-QC->advanced:derived-categories-and-sheaf-operations",
      "from": "advanced:AG-QC",
      "to": "advanced:derived-categories-and-sheaf-operations",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-INV->core:B40",
      "from": "advanced:NOE-INV",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-INV->core:C40",
      "from": "advanced:NOE-INV",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-INV->core:D70",
      "from": "advanced:NOE-INV",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-DIRL->core:C30",
      "from": "advanced:NT-DIRL",
      "to": "core:C30",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-DIRL->core:C40",
      "from": "advanced:NT-DIRL",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-DIRL->core:C50",
      "from": "advanced:NT-DIRL",
      "to": "core:C50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-DIRL->core:C60",
      "from": "advanced:NT-DIRL",
      "to": "core:C60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-CFT->core:C40",
      "from": "advanced:NT-CFT",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-CFT->core:C90",
      "from": "advanced:NT-CFT",
      "to": "core:C90",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-CFT->core:D70",
      "from": "advanced:NT-CFT",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-CFT->core:D80",
      "from": "advanced:NT-CFT",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-CFT->advanced:NT-ANT",
      "from": "advanced:NT-CFT",
      "to": "advanced:NT-ANT",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-CFT->advanced:NT-LOC",
      "from": "advanced:NT-CFT",
      "to": "advanced:NT-LOC",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-CFT->advanced:NT-ADL",
      "from": "advanced:NT-CFT",
      "to": "advanced:NT-ADL",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-CFT->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:NT-CFT",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-CFT->advanced:function-algebras-and-approximation",
      "from": "advanced:NT-CFT",
      "to": "advanced:function-algebras-and-approximation",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NT-CFT->advanced:harmonic-analysis-on-locally-compact-groups",
      "from": "advanced:NT-CFT",
      "to": "advanced:harmonic-analysis-on-locally-compact-groups",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-IDL->core:C40",
      "from": "advanced:NOE-IDL",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-IDL->core:D70",
      "from": "advanced:NOE-IDL",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-IDL->advanced:AG-CA",
      "from": "advanced:NOE-IDL",
      "to": "advanced:AG-CA",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-SAT->core:D60",
      "from": "advanced:GL-SAT",
      "to": "core:D60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-SAT->core:D70",
      "from": "advanced:GL-SAT",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-SAT->core:D80",
      "from": "advanced:GL-SAT",
      "to": "core:D80",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:GL-SAT->core:D100",
      "from": "advanced:GL-SAT",
      "to": "core:D100",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:TR-BAKER->core:B40",
      "from": "advanced:TR-BAKER",
      "to": "core:B40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:TR-BAKER->core:C40",
      "from": "advanced:TR-BAKER",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:TR-BAKER->core:C50",
      "from": "advanced:TR-BAKER",
      "to": "core:C50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:TR-BAKER->core:C60",
      "from": "advanced:TR-BAKER",
      "to": "core:C60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:TR-BAKER->advanced:NT-ANT",
      "from": "advanced:TR-BAKER",
      "to": "advanced:NT-ANT",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:TR-BAKER->advanced:TR-TRANS",
      "from": "advanced:TR-BAKER",
      "to": "advanced:TR-TRANS",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:TR-TRANS->core:C10",
      "from": "advanced:TR-TRANS",
      "to": "core:C10",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:TR-TRANS->core:C40",
      "from": "advanced:TR-TRANS",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:TR-TRANS->core:C50",
      "from": "advanced:TR-TRANS",
      "to": "core:C50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->core:C40",
      "from": "advanced:NOE-RAT",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->core:D70",
      "from": "advanced:NOE-RAT",
      "to": "core:D70",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:AG-CA",
      "from": "advanced:NOE-RAT",
      "to": "advanced:AG-CA",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:NOE-HYP",
      "from": "advanced:NOE-RAT",
      "to": "advanced:NOE-HYP",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:NT-LOC",
      "from": "advanced:NOE-RAT",
      "to": "advanced:NT-LOC",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:AG-MO",
      "from": "advanced:NOE-RAT",
      "to": "advanced:AG-MO",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:AG-QC",
      "from": "advanced:NOE-RAT",
      "to": "advanced:AG-QC",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:NT-ANT",
      "from": "advanced:NOE-RAT",
      "to": "advanced:NT-ANT",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:AG-HP",
      "from": "advanced:NOE-RAT",
      "to": "advanced:AG-HP",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:the-field-with-one-element",
      "from": "advanced:NOE-RAT",
      "to": "advanced:the-field-with-one-element",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:ag-etale-cohomology",
      "from": "advanced:NOE-RAT",
      "to": "advanced:ag-etale-cohomology",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:foundations-of-von-neumann-algebras",
      "from": "advanced:NOE-RAT",
      "to": "advanced:foundations-of-von-neumann-algebras",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:function-algebras-and-approximation",
      "from": "advanced:NOE-RAT",
      "to": "advanced:function-algebras-and-approximation",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:harmonic-analysis-on-locally-compact-groups",
      "from": "advanced:NOE-RAT",
      "to": "advanced:harmonic-analysis-on-locally-compact-groups",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:NOE-RAT->advanced:derived-categories-and-sheaf-operations",
      "from": "advanced:NOE-RAT",
      "to": "advanced:derived-categories-and-sheaf-operations",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "courses_here_to_take_first",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:DG-CHAR->core:D50",
      "from": "advanced:DG-CHAR",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:DG-CHAR->core:D60",
      "from": "advanced:DG-CHAR",
      "to": "core:D60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:DG-FND->core:D50",
      "from": "advanced:DG-FND",
      "to": "core:D50",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:DG-FND->core:D60",
      "from": "advanced:DG-FND",
      "to": "core:D60",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-RG->core:C40",
      "from": "advanced:AG-RG",
      "to": "core:C40",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.core",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-RG->advanced:AG-GS",
      "from": "advanced:AG-RG",
      "to": "advanced:AG-GS",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    },
    {
      "id": "preparation_course:advanced:AG-RG->advanced:AG-DFG",
      "from": "advanced:AG-RG",
      "to": "advanced:AG-DFG",
      "relation": "preparation_course",
      "evidence": {
        "input": "advanced-courses.json",
        "field": "take_first.here",
        "declared_by": "advanced_course"
      },
      "mathematical_correspondence": "not_checked",
      "proof_closed": false
    }
  ],
  "reverse_dependencies": {
    "core:A00": [
      "core:A10"
    ],
    "core:A10": [
      "core:A20"
    ],
    "core:A20": [
      "core:A30"
    ],
    "core:A30": [
      "core:B10",
      "core:B20",
      "core:B40",
      "core:B80",
      "core:B95"
    ],
    "core:B10": [
      "core:B40",
      "core:C10",
      "core:C100",
      "core:C30",
      "core:C60",
      "core:C70",
      "core:C80",
      "core:C90",
      "core:D110"
    ],
    "core:B20": [
      "core:B30"
    ],
    "core:B30": [
      "core:B50",
      "core:B70",
      "core:B90",
      "core:C10",
      "core:C110"
    ],
    "core:B40": [
      "advanced:NOE-HYP",
      "advanced:NOE-INV",
      "advanced:NT-ANT",
      "advanced:RT-FIN",
      "advanced:RT-LIE",
      "advanced:TR-BAKER",
      "core:B50",
      "core:B70",
      "core:C100",
      "core:C110",
      "core:C130",
      "core:C140",
      "core:C30",
      "core:D110",
      "core:D20",
      "core:D70"
    ],
    "core:B50": [
      "advanced:LIE-TG",
      "advanced:NOE-SYM",
      "core:B60",
      "core:C20"
    ],
    "core:B60": [
      "core:C100",
      "core:D50"
    ],
    "core:B70": [
      "advanced:LIE-TG",
      "advanced:NOE-SYM",
      "core:C120",
      "core:D40"
    ],
    "core:B80": [
      "core:C110",
      "core:C120",
      "core:C130",
      "core:D120"
    ],
    "core:B90": [
      "core:B95",
      "core:C140",
      "core:D30"
    ],
    "core:B95": [
      "core:C140"
    ],
    "core:C10": [
      "advanced:NT-LOC",
      "advanced:NT-ZETA",
      "advanced:TR-TRANS",
      "advanced:function-algebras-and-approximation",
      "core:C110",
      "core:C120",
      "core:C140",
      "core:C20",
      "core:C90",
      "core:D110"
    ],
    "core:C20": [
      "advanced:NT-ZETA",
      "core:C50",
      "core:D10",
      "core:D120"
    ],
    "core:C30": [
      "advanced:NOE-HYP",
      "advanced:NT-ANT",
      "advanced:NT-DIRL",
      "advanced:RT-FIN",
      "core:C40",
      "core:C60",
      "core:D110",
      "core:D50",
      "core:D60",
      "core:D80"
    ],
    "core:C40": [
      "advanced:AG-CA",
      "advanced:AG-GS",
      "advanced:AG-RG",
      "advanced:LG-GAL",
      "advanced:LG-LLC",
      "advanced:LG-MF",
      "advanced:NOE-ABS",
      "advanced:NOE-HYP",
      "advanced:NOE-IDL",
      "advanced:NOE-INV",
      "advanced:NOE-RAT",
      "advanced:NT-ANT",
      "advanced:NT-CFT",
      "advanced:NT-DIRL",
      "advanced:NT-LOC",
      "advanced:RT-FIN",
      "advanced:RT-LIE",
      "advanced:TR-BAKER",
      "advanced:TR-TRANS",
      "core:D120",
      "core:D70"
    ],
    "core:C50": [
      "advanced:GL-DMOD",
      "advanced:LG-MF",
      "advanced:LIE-TG",
      "advanced:NT-ADL",
      "advanced:NT-DIRL",
      "advanced:NT-EXPF",
      "advanced:NT-ZETA",
      "advanced:TR-BAKER",
      "advanced:TR-TRANS",
      "advanced:analytic-elements-strips-and-kms"
    ],
    "core:C60": [
      "advanced:LG-MF",
      "advanced:NOE-ABS",
      "advanced:NT-ANT",
      "advanced:NT-DIRL",
      "advanced:NT-ZETA",
      "advanced:TR-BAKER"
    ],
    "core:C70": [
      "core:C130"
    ],
    "core:C80": [
      "core:D80"
    ],
    "core:C90": [
      "advanced:AG-DFG",
      "advanced:AG-SS",
      "advanced:HA-LCA",
      "advanced:KT-OPK",
      "advanced:LG-GAL",
      "advanced:LG-MF",
      "advanced:NT-ADL",
      "advanced:NT-CFT",
      "advanced:NT-LOC",
      "advanced:ag-etale-cohomology",
      "advanced:automorphic-forms-and-representations-of-gl2",
      "advanced:function-algebras-and-approximation",
      "advanced:harmonic-analysis-on-locally-compact-groups",
      "core:D10",
      "core:D100",
      "core:D50",
      "core:D60"
    ],
    "core:C100": [],
    "core:C110": [
      "core:D40",
      "core:D90"
    ],
    "core:C120": [],
    "core:C130": [
      "core:D90"
    ],
    "core:C140": [
      "core:D30"
    ],
    "core:D10": [
      "advanced:AN-03",
      "advanced:AN-06",
      "advanced:HA-LCA",
      "advanced:KT-CP",
      "advanced:LG-MF",
      "advanced:NT-ADL",
      "advanced:NT-EXPF",
      "advanced:NT-LOC",
      "advanced:OA-FLOW",
      "advanced:OA-MOD",
      "advanced:automorphic-forms-and-representations-of-gl2",
      "advanced:injective-factors",
      "advanced:measurable-fields-and-direct-integrals",
      "advanced:noncommutative-integration",
      "advanced:representations-of-compact-groups",
      "advanced:traces-and-noncommutative-integration",
      "advanced:type-iii-factors",
      "core:D20",
      "core:D30",
      "core:D40"
    ],
    "core:D20": [
      "advanced:AN-03",
      "advanced:AN-06",
      "advanced:HA-LCA",
      "advanced:KT-CP",
      "advanced:KT-KK",
      "advanced:KT-OPK",
      "advanced:NCG-CYCLIC",
      "advanced:NCG-LOCAL-INDEX",
      "advanced:NT-ADL",
      "advanced:NT-EXPF",
      "advanced:OA-FLOW",
      "advanced:OA-MOD",
      "advanced:analytic-elements-strips-and-kms",
      "advanced:automorphic-forms-and-representations-of-gl2",
      "advanced:entropy-of-automorphisms",
      "advanced:foundations-of-von-neumann-algebras",
      "advanced:hilbert-algebras",
      "advanced:hilbert-c-star-modules-and-morita-equivalence",
      "advanced:index-theory-of-elliptic-operators",
      "advanced:injective-factors",
      "advanced:measurable-fields-and-direct-integrals",
      "advanced:noncommutative-integration",
      "advanced:representations-of-compact-groups",
      "advanced:tensor-products-of-operator-algebras",
      "advanced:totally-characteristic-operators",
      "advanced:traces-and-noncommutative-integration",
      "advanced:type-iii-factors",
      "core:D40",
      "core:D90"
    ],
    "core:D30": [],
    "core:D40": [
      "advanced:AN-03",
      "advanced:AN-06",
      "advanced:NOE-SYM",
      "advanced:totally-characteristic-operators"
    ],
    "core:D50": [
      "advanced:AN-03",
      "advanced:AN-06",
      "advanced:DG-CHAR",
      "advanced:DG-FND",
      "advanced:KT-KK",
      "advanced:LIE-TG",
      "advanced:NCG-CYCLIC",
      "advanced:NCG-LOCAL-INDEX",
      "advanced:NOE-SYM",
      "advanced:SH-02",
      "advanced:SH-03",
      "advanced:index-theory-of-elliptic-operators",
      "advanced:representations-of-compact-groups"
    ],
    "core:D60": [
      "advanced:AG-AS",
      "advanced:DG-CHAR",
      "advanced:DG-FND",
      "advanced:GL-DMOD",
      "advanced:GL-GLC",
      "advanced:GL-PERV",
      "advanced:GL-SAT",
      "advanced:KT-KK",
      "advanced:LG-MF",
      "advanced:SH-02",
      "advanced:SH-03",
      "core:D100"
    ],
    "core:D70": [
      "advanced:AG-CA",
      "advanced:AG-GS",
      "advanced:GL-DMOD",
      "advanced:GL-SAT",
      "advanced:LG-GAL",
      "advanced:LG-LLC",
      "advanced:NOE-ABS",
      "advanced:NOE-HYP",
      "advanced:NOE-IDL",
      "advanced:NOE-INV",
      "advanced:NOE-RAT",
      "advanced:NT-ANT",
      "advanced:NT-CFT",
      "advanced:NT-LOC",
      "core:D100",
      "core:D80"
    ],
    "core:D80": [
      "advanced:AG-AS",
      "advanced:AG-DFG",
      "advanced:AG-FSE",
      "advanced:AG-GS",
      "advanced:AG-HP",
      "advanced:AG-LCL",
      "advanced:AG-LTF",
      "advanced:AG-MO",
      "advanced:AG-QC",
      "advanced:AG-SS",
      "advanced:GL-DMOD",
      "advanced:GL-GLC",
      "advanced:GL-PERV",
      "advanced:GL-SAT",
      "advanced:NCG-CYCLIC",
      "advanced:NT-CFT",
      "advanced:SH-02",
      "advanced:SH-03",
      "advanced:ag-etale-cohomology",
      "advanced:derived-categories-and-sheaf-operations",
      "advanced:the-field-with-one-element",
      "core:D100"
    ],
    "core:D90": [],
    "core:D100": [
      "advanced:AG-DFG",
      "advanced:AG-FSE",
      "advanced:AG-HP",
      "advanced:AG-LCL",
      "advanced:AG-LTF",
      "advanced:GL-DMOD",
      "advanced:GL-GLC",
      "advanced:GL-PERV",
      "advanced:GL-SAT",
      "advanced:the-field-with-one-element"
    ],
    "core:D110": [],
    "core:D120": [],
    "advanced:HA-LCA": [],
    "advanced:NT-ANT": [
      "advanced:NOE-RAT",
      "advanced:NT-CFT",
      "advanced:TR-BAKER"
    ],
    "advanced:AG-FSE": [],
    "advanced:foundations-of-von-neumann-algebras": [
      "advanced:HA-LCA",
      "advanced:KT-KK",
      "advanced:KT-OPK",
      "advanced:LG-MF",
      "advanced:NCG-CYCLIC",
      "advanced:NCG-LOCAL-INDEX",
      "advanced:NOE-RAT",
      "advanced:NT-CFT",
      "advanced:OA-FLOW",
      "advanced:OA-MOD",
      "advanced:analytic-elements-strips-and-kms",
      "advanced:entropy-of-automorphisms",
      "advanced:harmonic-analysis-on-locally-compact-groups",
      "advanced:hilbert-algebras",
      "advanced:hilbert-c-star-modules-and-morita-equivalence",
      "advanced:injective-factors",
      "advanced:measurable-fields-and-direct-integrals",
      "advanced:noncommutative-integration",
      "advanced:tensor-products-of-operator-algebras",
      "advanced:traces-and-noncommutative-integration",
      "advanced:type-iii-factors"
    ],
    "advanced:measurable-fields-and-direct-integrals": [
      "advanced:injective-factors",
      "advanced:noncommutative-integration"
    ],
    "advanced:tensor-products-of-operator-algebras": [
      "advanced:hilbert-algebras",
      "advanced:injective-factors",
      "advanced:noncommutative-integration",
      "advanced:type-iii-factors"
    ],
    "advanced:OA-MOD": [
      "advanced:HA-LCA",
      "advanced:OA-FLOW",
      "advanced:analytic-elements-strips-and-kms",
      "advanced:entropy-of-automorphisms",
      "advanced:hilbert-algebras",
      "advanced:injective-factors",
      "advanced:noncommutative-integration",
      "advanced:traces-and-noncommutative-integration",
      "advanced:type-iii-factors"
    ],
    "advanced:hilbert-algebras": [
      "advanced:noncommutative-integration"
    ],
    "advanced:analytic-elements-strips-and-kms": [
      "advanced:entropy-of-automorphisms"
    ],
    "advanced:traces-and-noncommutative-integration": [
      "advanced:entropy-of-automorphisms",
      "advanced:injective-factors",
      "advanced:type-iii-factors"
    ],
    "advanced:OA-FLOW": [
      "advanced:HA-LCA"
    ],
    "advanced:type-iii-factors": [
      "advanced:injective-factors"
    ],
    "advanced:injective-factors": [],
    "advanced:entropy-of-automorphisms": [],
    "advanced:noncommutative-integration": [],
    "advanced:NCG-CYCLIC": [
      "advanced:KT-KK",
      "advanced:NCG-LOCAL-INDEX"
    ],
    "advanced:NCG-LOCAL-INDEX": [
      "advanced:KT-KK"
    ],
    "advanced:function-algebras-and-approximation": [
      "advanced:HA-LCA",
      "advanced:LG-MF",
      "advanced:NOE-RAT",
      "advanced:NT-CFT",
      "advanced:harmonic-analysis-on-locally-compact-groups"
    ],
    "advanced:harmonic-analysis-on-locally-compact-groups": [
      "advanced:HA-LCA",
      "advanced:LG-MF",
      "advanced:NOE-RAT",
      "advanced:NT-ADL",
      "advanced:NT-CFT",
      "advanced:NT-LOC",
      "advanced:automorphic-forms-and-representations-of-gl2",
      "advanced:hilbert-algebras",
      "advanced:injective-factors",
      "advanced:noncommutative-integration"
    ],
    "advanced:AN-03": [
      "advanced:AN-06",
      "advanced:KT-KK",
      "advanced:NCG-LOCAL-INDEX",
      "advanced:index-theory-of-elliptic-operators",
      "advanced:totally-characteristic-operators"
    ],
    "advanced:totally-characteristic-operators": [],
    "advanced:index-theory-of-elliptic-operators": [
      "advanced:KT-KK"
    ],
    "advanced:derived-categories-and-sheaf-operations": [
      "advanced:AG-HP",
      "advanced:AG-LCL",
      "advanced:AG-LTF",
      "advanced:AG-QC",
      "advanced:GL-DMOD",
      "advanced:GL-PERV",
      "advanced:NOE-RAT",
      "advanced:SH-02",
      "advanced:SH-03",
      "advanced:ag-etale-cohomology"
    ],
    "advanced:SH-02": [
      "advanced:GL-DMOD",
      "advanced:GL-PERV",
      "advanced:SH-03"
    ],
    "advanced:AN-06": [],
    "advanced:the-field-with-one-element": [
      "advanced:AG-LTF",
      "advanced:NOE-RAT",
      "advanced:NT-EXPF"
    ],
    "advanced:AG-GS": [
      "advanced:AG-RG"
    ],
    "advanced:hilbert-c-star-modules-and-morita-equivalence": [],
    "advanced:AG-LTF": [],
    "advanced:GL-DMOD": [],
    "advanced:GL-PERV": [],
    "advanced:AG-DFG": [
      "advanced:AG-RG"
    ],
    "advanced:AG-HP": [
      "advanced:NOE-RAT"
    ],
    "advanced:GL-GLC": [],
    "advanced:LG-GAL": [
      "advanced:LG-LLC"
    ],
    "advanced:ag-etale-cohomology": [
      "advanced:NOE-RAT"
    ],
    "advanced:NT-ADL": [
      "advanced:NT-CFT"
    ],
    "advanced:NOE-ABS": [],
    "advanced:LG-LLC": [],
    "advanced:KT-CP": [],
    "advanced:representations-of-compact-groups": [],
    "advanced:RT-FIN": [],
    "advanced:AG-CA": [
      "advanced:AG-SS",
      "advanced:NOE-IDL",
      "advanced:NOE-RAT"
    ],
    "advanced:NT-LOC": [
      "advanced:NOE-RAT",
      "advanced:NT-CFT"
    ],
    "advanced:AG-LCL": [],
    "advanced:automorphic-forms-and-representations-of-gl2": [],
    "advanced:LIE-TG": [],
    "advanced:AG-AS": [],
    "advanced:KT-OPK": [],
    "advanced:LG-MF": [],
    "advanced:LG-GLOB": [],
    "advanced:NOE-HYP": [
      "advanced:NOE-RAT"
    ],
    "advanced:RT-LIE": [],
    "advanced:SH-03": [],
    "advanced:NOE-SYM": [],
    "advanced:NT-EXPF": [],
    "advanced:KT-KK": [],
    "advanced:NT-ZETA": [],
    "advanced:AG-MO": [
      "advanced:NOE-RAT"
    ],
    "advanced:AG-SS": [],
    "advanced:AG-QC": [
      "advanced:NOE-RAT"
    ],
    "advanced:NOE-INV": [],
    "advanced:NT-DIRL": [],
    "advanced:NT-CFT": [],
    "advanced:NOE-IDL": [],
    "advanced:GL-SAT": [],
    "advanced:TR-BAKER": [],
    "advanced:TR-TRANS": [
      "advanced:TR-BAKER"
    ],
    "advanced:NOE-RAT": [],
    "advanced:DG-CHAR": [],
    "advanced:DG-FND": [],
    "advanced:AG-RG": []
  },
  "native_phone_exchange": {
    "schema": "stacks-foundation-proof-exchange/v1",
    "course_snapshot": "R6D: 79 current OA-MOD reading units; prior R6C AN-03, SH-02 and other course work preserved.; additive public courses at 87f935060ef4; additive source partitions at f0482fc75ed5; exact KT-HM/RT-FIN writer returns, R11; R12 standalone sheaf course and exact-version AI review; R13 six lessons, exact notation correction, original Lie figure and finite-group review replay; R14 88 new lessons, 11 source-version reconciliations and exact Noether review; R15 source-role reconciliation, three added sheaf lessons, 35 preserved successors and three exact AI reviews; R16 Hilbert-module prerequisite repair, two additive lessons, versioned citation correction and explicit review findings; R17 three source-bound foundation reading routes, final Hilbert-module lesson and exact duality AI review; R18 learner programme-path explorer and exact braidings AI review; R19 bilingual core-programme routes, KSGNS source correction with history and three exact sheaf reviews; R20 exact Morita review and explicit open Connes–Thom sign finding; R22 exact review closures, 11 preserved source successors and nine new draft lessons; R23 two additional sheaf drafts and three source-bound reviews; R24 91 additive course continuations, all prior versions retained; exact ind-abelian review with two unresolved corrections; R25 five additional exact-source AI reviews, lesson sources unchanged; R26 corrected Ind-abelian source with both historical review states and three additional exact reviews; R27 bounded Hilbert-module review notices and three exact sheaf reviews; R28 two additive sheaf lessons with prerequisite-aware reading order; R29 32 additive course continuations, all prior versions retained; R30 eleven source-bound prerequisite routes and four preserved citation/link source corrections; R31 exact sheaf AI review and partial modular-spectrum finding; R32 closed-graph source attribution and preserved punctured variant; R33 corrects the embedded diagram attribution labels; R34 exact full-review scope with historical and preview findings; R36 adds two exact-source characteristic-class foundation lessons and matching full-proof reading routes.",
    "reading_edges": [
      {
        "from": "hilbert-c-star-modules-and-morita-equivalence/hilbert-c-star-modules",
        "declared_id": "OA-FND-CF (foundations-of-von-neumann-algebras: C*-algebras: continuous functional calculus, automatic continuity, positive cones, approximate identities and quotients)",
        "target": "foundations-of-von-neumann-algebras/c-star-algebras-continuous-functional-calculus-automatic-continuity-positive-cones",
        "from_source_sha256": "B5181313C581AEF88AC3C8BC1C6F1F059BD606215BBE8B5FE3A0ADC5B295B661",
        "target_source_sha256": "0B9FC28909B19119FCDEEFA8F386D2C44F096F55577CE8EA8792921A83FCF2AE",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "hilbert-c-star-modules-and-morita-equivalence/completely-positive-maps-and-the-ksgns-construction",
        "declared_id": "OA-FND-CM (foundations-of-von-neumann-algebras: Completely positive maps)",
        "target": "foundations-of-von-neumann-algebras/completely-positive-maps",
        "from_source_sha256": "A18317381EF91F204E6CFE3F18EC03870EF4317C495B0CFD3914B76BA0BD27D2",
        "target_source_sha256": "5665EBF8311E7746210077CA59CD36FAD24EB381563F7D2E893D2916B0F9EC3F",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "hilbert-c-star-modules-and-morita-equivalence/completely-positive-maps-and-the-ksgns-construction",
        "declared_id": "OA-FND-GN (foundations-of-von-neumann-algebras: Representations and positive functionals: the GNS construction and the Gelfand-Naimark theorem)",
        "target": "foundations-of-von-neumann-algebras/representations-and-positive-functionals-the-gns-construction-and-the-gelfand-naimark",
        "from_source_sha256": "A18317381EF91F204E6CFE3F18EC03870EF4317C495B0CFD3914B76BA0BD27D2",
        "target_source_sha256": "98617F90F897E6CD609363E292E0180D2D60086D7282D6B2220BF7B3C614F51E",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "GL-DMOD/stacks-ind-schemes-and-the-de-rham-prestack",
        "declared_id": "Reading prerequisite: Inverse images",
        "target": "GL-DMOD/inverse-images",
        "from_source_sha256": "755287965C1A4B82116198514DE22FB4194830EBBE389BD4152DB88A432B7D1F",
        "target_source_sha256": "32952693C952AD2073BFAD133CB7BA678F7AEFE6D1B68DA194EEFF3041D05FB2",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "GL-DMOD/stacks-ind-schemes-and-the-de-rham-prestack",
        "declared_id": "Reading prerequisite: Equivariant and twisted D-modules",
        "target": "GL-DMOD/equivariant-and-twisted-d-modules",
        "from_source_sha256": "755287965C1A4B82116198514DE22FB4194830EBBE389BD4152DB88A432B7D1F",
        "target_source_sha256": "6D6E9EA0BE20670D69910E96F44D33EB25208BB65F74BF45291ECCA219A61214",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "GL-DMOD/the-fourier-transform-of-d-modules",
        "declared_id": "Reading prerequisite: The Bernstein filtration and holonomic modules over the Weyl algebra",
        "target": "GL-DMOD/the-bernstein-filtration-and-holonomic-modules",
        "from_source_sha256": "5D3BF32A698123444BCE33411EA283F8BFC7FF30D975DCDFCC00419776F9C534",
        "target_source_sha256": "D4F441208C163C7188951ED9D1E08AE94431D8FDCE9C7A731207064431DC9DC6",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "GL-DMOD/the-fourier-transform-of-d-modules",
        "declared_id": "Reading prerequisite: Direct images and the relative de Rham complex",
        "target": "GL-DMOD/direct-images-and-the-relative-de-rham-complex",
        "from_source_sha256": "5D3BF32A698123444BCE33411EA283F8BFC7FF30D975DCDFCC00419776F9C534",
        "target_source_sha256": "14DB9E5DCC74C0203EF7FB4945D9E20243655C1F5AD8A66D6CC070D3A4CB299E",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "GL-DMOD/the-fourier-transform-of-d-modules",
        "declared_id": "Reading prerequisite: Adjunctions, base change and the projection formula",
        "target": "GL-DMOD/adjunctions-base-change-and-the-projection-formula",
        "from_source_sha256": "5D3BF32A698123444BCE33411EA283F8BFC7FF30D975DCDFCC00419776F9C534",
        "target_source_sha256": "6D3E775F0142BFC1C10651F09FA2CE57C72D632BB1259AFAE3B5136FAC450243",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "GL-DMOD/the-fourier-transform-of-d-modules",
        "declared_id": "Reading prerequisite: Regular singularities",
        "target": "GL-DMOD/regular-singularities",
        "from_source_sha256": "5D3BF32A698123444BCE33411EA283F8BFC7FF30D975DCDFCC00419776F9C534",
        "target_source_sha256": "B69BFC7D3546FFCE702C1726EC9BD56980629395C37A4930A88339B89621EF50",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/cohomological-dimension-and-the-kunneth-formula",
        "declared_id": "Reading prerequisite: Pushforward, pullback and finite morphisms",
        "target": "ag-etale-cohomology/pushforward-pullback-and-finite-morphisms",
        "from_source_sha256": "2CF8ED7F0AD90A4222A12CA1CBFF8802470B0FC160F64CD045695E905D120219",
        "target_source_sha256": "9AA033908E31A807EA51F7F8AAD4B9F9A46C4C5E9E500BA5E832C4B564AFB314",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/cohomological-dimension-and-the-kunneth-formula",
        "declared_id": "Reading prerequisite: Galois cohomology and the étale cohomology of a field",
        "target": "ag-etale-cohomology/galois-cohomology-and-the-etale-cohomology-of-a-field",
        "from_source_sha256": "2CF8ED7F0AD90A4222A12CA1CBFF8802470B0FC160F64CD045695E905D120219",
        "target_source_sha256": "C9EBD21EBC5BC7291A5D3EB6B7ED3DD34B3058E852D5D78CFC35CE439C6529E1",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/cohomological-dimension-and-the-kunneth-formula",
        "declared_id": "Reading prerequisite: Constructible sheaves and extension by zero",
        "target": "ag-etale-cohomology/constructible-sheaves-and-extension-by-zero",
        "from_source_sha256": "2CF8ED7F0AD90A4222A12CA1CBFF8802470B0FC160F64CD045695E905D120219",
        "target_source_sha256": "44C940CA9BE3925036B069649BAEA5925C5D682D2719EFA10D11BE33D4D649D3",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/cohomological-dimension-and-the-kunneth-formula",
        "declared_id": "Reading prerequisite: Torsion sheaves on curves",
        "target": "ag-etale-cohomology/torsion-sheaves-on-curves",
        "from_source_sha256": "2CF8ED7F0AD90A4222A12CA1CBFF8802470B0FC160F64CD045695E905D120219",
        "target_source_sha256": "BD9293D188457B92BF934A768BEF00B30BDEA63AFA279B8FF4F3CB9761462AE0",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/cohomological-dimension-and-the-kunneth-formula",
        "declared_id": "Reading prerequisite: The proper base change theorem",
        "target": "ag-etale-cohomology/the-proper-base-change-theorem",
        "from_source_sha256": "2CF8ED7F0AD90A4222A12CA1CBFF8802470B0FC160F64CD045695E905D120219",
        "target_source_sha256": "C47721EF252E2957C3C2890DCCAEE7AF8F02DE93C790D0D9006DAFC7F6CA00FE",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/cohomological-dimension-and-the-kunneth-formula",
        "declared_id": "Reading prerequisite: Cohomology with compact support",
        "target": "ag-etale-cohomology/cohomology-with-compact-support",
        "from_source_sha256": "2CF8ED7F0AD90A4222A12CA1CBFF8802470B0FC160F64CD045695E905D120219",
        "target_source_sha256": "342C36A23AAF0BB0A7D04B7720526D12B41D5980F47E8725597F60A14C907DFD",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/cohomological-dimension-and-the-kunneth-formula",
        "declared_id": "Reading prerequisite: Smooth base change and local acyclicity",
        "target": "ag-etale-cohomology/smooth-base-change-and-local-acyclicity",
        "from_source_sha256": "2CF8ED7F0AD90A4222A12CA1CBFF8802470B0FC160F64CD045695E905D120219",
        "target_source_sha256": "33A479385D6C8AB83E868275D15CF64701A208ECA81F0558D7A47812B9A0D8FD",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-curves",
        "declared_id": "Reading prerequisite: Pushforward, pullback and finite morphisms",
        "target": "ag-etale-cohomology/pushforward-pullback-and-finite-morphisms",
        "from_source_sha256": "72E6CF2A83377389ADED54D9650F3996C87B7D2BF2ED0A0D3E44BBF05B435B3A",
        "target_source_sha256": "9AA033908E31A807EA51F7F8AAD4B9F9A46C4C5E9E500BA5E832C4B564AFB314",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-curves",
        "declared_id": "Reading prerequisite: Galois cohomology and the étale cohomology of a field",
        "target": "ag-etale-cohomology/galois-cohomology-and-the-etale-cohomology-of-a-field",
        "from_source_sha256": "72E6CF2A83377389ADED54D9650F3996C87B7D2BF2ED0A0D3E44BBF05B435B3A",
        "target_source_sha256": "C9EBD21EBC5BC7291A5D3EB6B7ED3DD34B3058E852D5D78CFC35CE439C6529E1",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-curves",
        "declared_id": "Reading prerequisite: The multiplicative group on a curve",
        "target": "ag-etale-cohomology/the-multiplicative-group-on-a-curve",
        "from_source_sha256": "72E6CF2A83377389ADED54D9650F3996C87B7D2BF2ED0A0D3E44BBF05B435B3A",
        "target_source_sha256": "A5D088578EAFD4EE770EF7D20C8B4A42CC85CA30431D4AC2F7D0F70748474CB9",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-curves",
        "declared_id": "Reading prerequisite: Constructible sheaves and extension by zero",
        "target": "ag-etale-cohomology/constructible-sheaves-and-extension-by-zero",
        "from_source_sha256": "72E6CF2A83377389ADED54D9650F3996C87B7D2BF2ED0A0D3E44BBF05B435B3A",
        "target_source_sha256": "44C940CA9BE3925036B069649BAEA5925C5D682D2719EFA10D11BE33D4D649D3",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-curves",
        "declared_id": "Reading prerequisite: Torsion sheaves on curves",
        "target": "ag-etale-cohomology/torsion-sheaves-on-curves",
        "from_source_sha256": "72E6CF2A83377389ADED54D9650F3996C87B7D2BF2ED0A0D3E44BBF05B435B3A",
        "target_source_sha256": "BD9293D188457B92BF934A768BEF00B30BDEA63AFA279B8FF4F3CB9761462AE0",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-curves",
        "declared_id": "Reading prerequisite: Cohomology with compact support",
        "target": "ag-etale-cohomology/cohomology-with-compact-support",
        "from_source_sha256": "72E6CF2A83377389ADED54D9650F3996C87B7D2BF2ED0A0D3E44BBF05B435B3A",
        "target_source_sha256": "342C36A23AAF0BB0A7D04B7720526D12B41D5980F47E8725597F60A14C907DFD",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-curves",
        "declared_id": "Reading prerequisite: Cohomological dimension and the Künneth formula",
        "target": "ag-etale-cohomology/cohomological-dimension-and-the-kunneth-formula",
        "from_source_sha256": "72E6CF2A83377389ADED54D9650F3996C87B7D2BF2ED0A0D3E44BBF05B435B3A",
        "target_source_sha256": "2CF8ED7F0AD90A4222A12CA1CBFF8802470B0FC160F64CD045695E905D120219",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-smooth-varieties",
        "declared_id": "Reading prerequisite: Pushforward, pullback and finite morphisms",
        "target": "ag-etale-cohomology/pushforward-pullback-and-finite-morphisms",
        "from_source_sha256": "43BA78A49AF66940584BFA96DA2AB4A1E50038E16B54856DF7622AF0F679D5F2",
        "target_source_sha256": "9AA033908E31A807EA51F7F8AAD4B9F9A46C4C5E9E500BA5E832C4B564AFB314",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-smooth-varieties",
        "declared_id": "Reading prerequisite: Constructible sheaves and extension by zero",
        "target": "ag-etale-cohomology/constructible-sheaves-and-extension-by-zero",
        "from_source_sha256": "43BA78A49AF66940584BFA96DA2AB4A1E50038E16B54856DF7622AF0F679D5F2",
        "target_source_sha256": "44C940CA9BE3925036B069649BAEA5925C5D682D2719EFA10D11BE33D4D649D3",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-smooth-varieties",
        "declared_id": "Reading prerequisite: Cohomology with compact support",
        "target": "ag-etale-cohomology/cohomology-with-compact-support",
        "from_source_sha256": "43BA78A49AF66940584BFA96DA2AB4A1E50038E16B54856DF7622AF0F679D5F2",
        "target_source_sha256": "342C36A23AAF0BB0A7D04B7720526D12B41D5980F47E8725597F60A14C907DFD",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-smooth-varieties",
        "declared_id": "Reading prerequisite: Smooth base change and local acyclicity",
        "target": "ag-etale-cohomology/smooth-base-change-and-local-acyclicity",
        "from_source_sha256": "43BA78A49AF66940584BFA96DA2AB4A1E50038E16B54856DF7622AF0F679D5F2",
        "target_source_sha256": "33A479385D6C8AB83E868275D15CF64701A208ECA81F0558D7A47812B9A0D8FD",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-smooth-varieties",
        "declared_id": "Reading prerequisite: Cohomological dimension and the Künneth formula",
        "target": "ag-etale-cohomology/cohomological-dimension-and-the-kunneth-formula",
        "from_source_sha256": "43BA78A49AF66940584BFA96DA2AB4A1E50038E16B54856DF7622AF0F679D5F2",
        "target_source_sha256": "2CF8ED7F0AD90A4222A12CA1CBFF8802470B0FC160F64CD045695E905D120219",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "ag-etale-cohomology/poincare-duality-for-smooth-varieties",
        "declared_id": "Reading prerequisite: Poincaré duality for curves",
        "target": "ag-etale-cohomology/poincare-duality-for-curves",
        "from_source_sha256": "43BA78A49AF66940584BFA96DA2AB4A1E50038E16B54856DF7622AF0F679D5F2",
        "target_source_sha256": "72E6CF2A83377389ADED54D9650F3996C87B7D2BF2ED0A0D3E44BBF05B435B3A",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-10",
        "declared_id": "Reading prerequisite: Irreducible representations of general linear groups over a local field",
        "target": "LG-LLC/LG-LLC-02",
        "from_source_sha256": "B5B5604937F2863BDE991A5BFA6F290C9005E407A73324D9C81236D67BE81086",
        "target_source_sha256": "C716FE26C50BF66E39709CE7AE1091EFD54EE23376F7C5BD8725B17542F48019",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-10",
        "declared_id": "Reading prerequisite: Monodromy blocks and the passage from supercuspidals to all parameters",
        "target": "LG-LLC/LG-LLC-05",
        "from_source_sha256": "B5B5604937F2863BDE991A5BFA6F290C9005E407A73324D9C81236D67BE81086",
        "target_source_sha256": "B82DE041B251C621B32C0932C620365C756C9C709DDCF806B2A0A96BC7C6D48D",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-11",
        "declared_id": "Reading prerequisite: The statement of the local Langlands correspondence",
        "target": "LG-LLC/LG-LLC-04",
        "from_source_sha256": "9C54B6E7E4339AD494D0EB97ED1C2C1520EED04779119E5EDA5817F172A33372",
        "target_source_sha256": "207A1FFCD5981D122A7B49088F4B1A51EC48554527B4E2767091E5DF4A78BF1D",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-11",
        "declared_id": "Reading prerequisite: Monodromy blocks and the passage from supercuspidals to all parameters",
        "target": "LG-LLC/LG-LLC-05",
        "from_source_sha256": "9C54B6E7E4339AD494D0EB97ED1C2C1520EED04779119E5EDA5817F172A33372",
        "target_source_sha256": "B82DE041B251C621B32C0932C620365C756C9C709DDCF806B2A0A96BC7C6D48D",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-11",
        "declared_id": "Reading prerequisite: Jacquet–Langlands: elliptic classes and division-algebra representations",
        "target": "LG-LLC/LG-LLC-10",
        "from_source_sha256": "9C54B6E7E4339AD494D0EB97ED1C2C1520EED04779119E5EDA5817F172A33372",
        "target_source_sha256": "B5B5604937F2863BDE991A5BFA6F290C9005E407A73324D9C81236D67BE81086",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-12",
        "declared_id": "Reading prerequisite: Irreducible representations of general linear groups over a local field",
        "target": "LG-LLC/LG-LLC-02",
        "from_source_sha256": "BB93381EC486C2E9AB7011092943F5904441F6C99E8568DB6236BE1B2A48EC35",
        "target_source_sha256": "C716FE26C50BF66E39709CE7AE1091EFD54EE23376F7C5BD8725B17542F48019",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-12",
        "declared_id": "Reading prerequisite: Dihedral supercuspidals, rectifiers and rank-two characterization",
        "target": "LG-LLC/LG-LLC-08",
        "from_source_sha256": "BB93381EC486C2E9AB7011092943F5904441F6C99E8568DB6236BE1B2A48EC35",
        "target_source_sha256": "875AB4F5B1FA65303028FEA392BAE5748519C9928D7DA16452B1F1494EF3D146",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-12",
        "declared_id": "Reading prerequisite: Local factors of pairs and the rank-two converse theorem",
        "target": "LG-LLC/LG-LLC-03",
        "from_source_sha256": "BB93381EC486C2E9AB7011092943F5904441F6C99E8568DB6236BE1B2A48EC35",
        "target_source_sha256": "63EB2B2DEF28FD17FE8F6A4F2E3A1472A3FB1823457DFCE9D7C109534C69F71A",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-13",
        "declared_id": "Reading prerequisite: Monodromy blocks and the passage from supercuspidals to all parameters",
        "target": "LG-LLC/LG-LLC-05",
        "from_source_sha256": "6E84BB15335BC4C36CE09587BD6BECB75EC6C5D34260A3B46F6AC65E41C00CAC",
        "target_source_sha256": "B82DE041B251C621B32C0932C620365C756C9C709DDCF806B2A0A96BC7C6D48D",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-13",
        "declared_id": "Reading prerequisite: Irreducible representations of general linear groups over a local field",
        "target": "LG-LLC/LG-LLC-02",
        "from_source_sha256": "6E84BB15335BC4C36CE09587BD6BECB75EC6C5D34260A3B46F6AC65E41C00CAC",
        "target_source_sha256": "C716FE26C50BF66E39709CE7AE1091EFD54EE23376F7C5BD8725B17542F48019",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-13",
        "declared_id": "Reading prerequisite: The statement of the local Langlands correspondence",
        "target": "LG-LLC/LG-LLC-04",
        "from_source_sha256": "6E84BB15335BC4C36CE09587BD6BECB75EC6C5D34260A3B46F6AC65E41C00CAC",
        "target_source_sha256": "207A1FFCD5981D122A7B49088F4B1A51EC48554527B4E2767091E5DF4A78BF1D",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-13",
        "declared_id": "Reading prerequisite: Jacquet–Langlands: elliptic classes and division-algebra representations",
        "target": "LG-LLC/LG-LLC-10",
        "from_source_sha256": "6E84BB15335BC4C36CE09587BD6BECB75EC6C5D34260A3B46F6AC65E41C00CAC",
        "target_source_sha256": "B5B5604937F2863BDE991A5BFA6F290C9005E407A73324D9C81236D67BE81086",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-13",
        "declared_id": "Reading prerequisite: Other proofs, functoriality and the formal-degree formula",
        "target": "LG-LLC/LG-LLC-12",
        "from_source_sha256": "6E84BB15335BC4C36CE09587BD6BECB75EC6C5D34260A3B46F6AC65E41C00CAC",
        "target_source_sha256": "BB93381EC486C2E9AB7011092943F5904441F6C99E8568DB6236BE1B2A48EC35",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-LLC/LG-LLC-13",
        "declared_id": "Reading prerequisite: Two-dimensional Weil representations: induction and projective symmetry",
        "target": "LG-LLC/LG-LLC-07",
        "from_source_sha256": "6E84BB15335BC4C36CE09587BD6BECB75EC6C5D34260A3B46F6AC65E41C00CAC",
        "target_source_sha256": "FE982BB7850AE31947C303B0E083185E06806C4C791965308FD9A3993F3569B9",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "AG-CA/AG-CA-20",
        "declared_id": "Reading prerequisite: Completion",
        "target": "AG-CA/AG-CA-19",
        "from_source_sha256": "E8FD3846C15A608C0B5EA6223173E5259D0138A846BD3B3CEAB9F2E6C4DD56C9",
        "target_source_sha256": "41240CA56F89F2C6CC8D89DB752061E7A671FA31151D5498DDD2D6BCE22253ED",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "AG-CA/AG-CA-20",
        "declared_id": "Reading prerequisite: Formally smooth, unramified and étale ring maps",
        "target": "AG-CA/AG-CA-17",
        "from_source_sha256": "E8FD3846C15A608C0B5EA6223173E5259D0138A846BD3B3CEAB9F2E6C4DD56C9",
        "target_source_sha256": "86158BB0A92990F689AFF0C96D1BE5AF49B46A7C03EF13641AA3658C86D378B6",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "AG-CA/AG-CA-20",
        "declared_id": "Reading prerequisite: Smooth algebras over a field and the Jacobian criterion",
        "target": "AG-CA/AG-CA-18",
        "from_source_sha256": "E8FD3846C15A608C0B5EA6223173E5259D0138A846BD3B3CEAB9F2E6C4DD56C9",
        "target_source_sha256": "9A549BBACBFECE8211C40341BFCDCA98CB61407F8AD84E9707CCD9439E4C4F9F",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-GLOB/LG-GLOB-03",
        "declared_id": "Reading prerequisite: The Satake isomorphism for unramified groups and unramified L-factors",
        "target": "LG-GLOB/LG-GLOB-02",
        "from_source_sha256": "6B8702DEAD4798458FE3332816111A91815879A95115F99C2C48EB5DAA56BB0C",
        "target_source_sha256": "4CDE65515351272EED46A5B7DFBA9EF11D68A21E0B76A35CC612DE6F46FE7650",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      },
      {
        "from": "LG-GLOB/LG-GLOB-03",
        "declared_id": "Reading prerequisite: Restricted tensor products and the tensor product theorem",
        "target": "automorphic-forms-and-representations-of-gl2/restricted-tensor-products-and-the-tensor-product-theorem",
        "from_source_sha256": "6B8702DEAD4798458FE3332816111A91815879A95115F99C2C48EB5DAA56BB0C",
        "target_source_sha256": "4FA72A5C0A06C78C18226B223CDF3F82BF2F8378A52F97965272CF2D414928D4",
        "relation": "lesson_reading",
        "mathematical_correspondence": "not_checked",
        "proof_closed": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909"
      }
    ],
    "reported_providers": [
      {
        "id": "DG-CHAR.bundle.partition",
        "title": "Partitions of unity",
        "statement": "Every open cover of a paracompact Hausdorff space admits a locally finite continuous subordinate partition with support inside assigned cover members.",
        "conditions": [
          "Every open cover of a paracompact Hausdorff space admits a locally finite continuous subordinate partition with support inside assigned cover members."
        ],
        "proof": {
          "unit": "DG-CHAR/DG-CHAR-01",
          "source_sha256": "C1740F19C0E1D1D589EAD8EC8D8E400489C5841A0892323D2500A94EC60D1556",
          "anchor": "2-the-partition-of-unity-we-will-use",
          "locus": "Theorem 2.3"
        },
        "prerequisites": [
          {
            "title": "Full prerequisite-proof inventory",
            "statement": "The writer's handoff does not supply an exhaustive exact prerequisite map for this result; read the complete lesson and its preceding arguments before use.",
            "proof": null
          }
        ],
        "scope_exclusions": [
          "Reported provider statement, not independent mathematical certification. This intake does not establish complete prerequisite closure or any downstream statement correspondence."
        ],
        "consumers": [],
        "record_kind": "reported_provider",
        "anchor_state": "requires_full_source_anchor_readback",
        "independent_proof_check": false,
        "whole_prerequisite_closure": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909",
        "public_route": null
      },
      {
        "id": "DG-CHAR.bundle.complements",
        "title": "Bundle metrics and complements",
        "statement": "Every finite-rank real/complex bundle on a paracompact Hausdorff base has a Euclidean/Hermitian metric; any subbundle of a metric bundle has a continuous orthogonal complementary subbundle.",
        "conditions": [
          "Every finite-rank real/complex bundle on a paracompact Hausdorff base has a Euclidean/Hermitian metric; any subbundle of a metric bundle has a continuous orthogonal complementary subbundle."
        ],
        "proof": {
          "unit": "DG-CHAR/DG-CHAR-01",
          "source_sha256": "C1740F19C0E1D1D589EAD8EC8D8E400489C5841A0892323D2500A94EC60D1556",
          "anchor": "4-metrics-projections-and-complements",
          "locus": "Theorems 4.1–4.2"
        },
        "prerequisites": [
          {
            "title": "Full prerequisite-proof inventory",
            "statement": "The writer's handoff does not supply an exhaustive exact prerequisite map for this result; read the complete lesson and its preceding arguments before use.",
            "proof": null
          }
        ],
        "scope_exclusions": [
          "Reported provider statement, not independent mathematical certification. This intake does not establish complete prerequisite closure or any downstream statement correspondence."
        ],
        "consumers": [],
        "record_kind": "reported_provider",
        "anchor_state": "requires_full_source_anchor_readback",
        "independent_proof_check": false,
        "whole_prerequisite_closure": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909",
        "public_route": null
      },
      {
        "id": "DG-CHAR.bundle.finite-stabilization",
        "title": "Finite stabilization of vector bundles",
        "statement": "Every finite-rank bundle over a compact Hausdorff base is a summand of a finite-rank trivial bundle.",
        "conditions": [
          "Every finite-rank bundle over a compact Hausdorff base is a summand of a finite-rank trivial bundle."
        ],
        "proof": {
          "unit": "DG-CHAR/DG-CHAR-01",
          "source_sha256": "C1740F19C0E1D1D589EAD8EC8D8E400489C5841A0892323D2500A94EC60D1556",
          "anchor": "5-stabilization-and-geometric-examples",
          "locus": "Theorem 5.1 and Exercise 6.4"
        },
        "prerequisites": [
          {
            "title": "Full prerequisite-proof inventory",
            "statement": "The writer's handoff does not supply an exhaustive exact prerequisite map for this result; read the complete lesson and its preceding arguments before use.",
            "proof": null
          }
        ],
        "scope_exclusions": [
          "Reported provider statement, not independent mathematical certification. This intake does not establish complete prerequisite closure or any downstream statement correspondence."
        ],
        "consumers": [],
        "record_kind": "reported_provider",
        "anchor_state": "requires_full_source_anchor_readback",
        "independent_proof_check": false,
        "whole_prerequisite_closure": false,
        "source_catalog_sha256": "151479371c16f6553f217e6cf15537e62bf48b85e25e19da4f84748d910d6909",
        "public_route": null
      }
    ]
  },
  "result_requirement_findings": {
    "schema": "cross-programme-proof-scope-findings/1",
    "state": "bounded_primary_source_findings_not_completed_proof_admission",
    "phone_exchange_schema": "stacks-foundation-proof-exchange/v1",
    "adapter_boundary": "Retain exact native IDs, source revisions/hashes, languages, anchors, conditions and actual reading evidence. Do not import a finding as a schema-clean phone comparison: its unchecked state forbids claiming completed reading, while an admitted comparison requires located prerequisite proofs and consumer-local evidence. These documentary findings need an explicit owner-side admission, not a silent conversion.",
    "producer": {
      "model": "gpt-6.1-sol",
      "effort": "ultra",
      "human_review_claimed": false
    },
    "requirements": [
      {
        "id": "RT-FIN-01.basis-extension",
        "downstream": {
          "course_id": "RT-FIN",
          "lesson_id": "representations-and-complete-reducibility",
          "language": "en",
          "revision": "03199b7daab2952cd4e094dd26ddebe6b065d4a1",
          "source_sha256": "659942bdf47420e6665d59c4e80cf973867730d3b231d7e9c80ab8177bd83712",
          "reader_sha256": "fc0fe3b74413f9e6179c5a11761cd81cb1a07e2cef1b26d635957af63780b31c",
          "anchor": "2-averaging-separates-invariant-pieces",
          "locus": "Theorem 2.3: extending a basis of the invariant subspace to form the initial projection; also Exercise 5",
          "route": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/representations-and-complete-reducibility.html#2-averaging-separates-invariant-pieces"
        },
        "required_statement": "An independent set in a finite-dimensional vector space over any field extends to a basis of that space.",
        "required_conditions": [
          "finite-dimensional vector space",
          "scalars in a field, not just the reals",
          "initial set linearly independent"
        ],
        "candidate_provider": {
          "course_id": "B40",
          "edition_id": "r005.hefferon-linear-algebra",
          "language": "en",
          "revision": "df2262e089a02651c127f1dd12649c4622ee1383",
          "statement_id": "r005.hefferon-linear-algebra.unit.file.src.vs.vs3.tex.corollary.label.b186ad4cc75572f666a6",
          "proof_id": "r005.hefferon-linear-algebra.unit.file.src.vs.vs3.tex.proof.source-order.0006",
          "native_label": "cor:LIExpBas",
          "source_path": "src/vs/vs3.tex",
          "source_sha256": "42f4aebaa8176040be3668544e93dabbcdcd2ea25833c16a4a52c981a8973714",
          "proof_fragment_sha256": "ea9b62d35813860974fc7c015b2c7dee0f48f869690e3478209aaa4d674404c6",
          "proof_lines": [
            1863,
            1874
          ],
          "public_proof_anchor": null
        },
        "selected_full_proof_read": true,
        "selected_used_prerequisite_arguments_read": true,
        "read_locators": "proof-sample/MANIFEST.json: six exact native result/proof locators, including exchange, dimension bound and adding a vector outside a span; also full src/vs/fields.tex",
        "scope_assessment": "The finite basis-extension argument and its selected algebraic prerequisites use field operations and inversion of nonzero coefficients, not order or positivity. The Fields topic explicitly explains the applicable field generalization. This does not justify generalizing metric/Hermitian results by replacing symbols.",
        "integrity_finding": "In the second half of lm:AddVecLiSetIsLiIffVecNotInSpan, zero equals sum(c_i*s_i) plus c_(n+1)*v. Solving for v needs coefficients -c_i/c_(n+1), but the preserved source prints positive c_i/c_(n+1). Membership in the span remains the intended and valid conclusion after the sign is accounted for.",
        "integrity_finding_id": "B40.vs2.add-vector-proof.minus-sign",
        "proof_closed": false,
        "admission_state": "requires_explicit_source_typo_disposition_and_public_native_proof_route",
        "finding_en": "The basis-extension route is located precisely, but is not yet admitted as a closed prerequisite. Its algebraic proof supports arbitrary fields; a printed minus-sign omission in a used lemma must be documented, and the exact proof needs a public reader anchor.",
        "finding_id": "Jalur perluasan basis telah ditemukan secara tepat, tetapi belum diterima sebagai prasyarat dengan pembuktian lengkap. Argumen aljabarnya berlaku untuk medan sebarang; tanda minus yang hilang dalam lema yang dipakai harus dicatat, dan pembuktian tepatnya memerlukan jangkar pembaca publik."
      },
      {
        "id": "RT-FIN-01.hermitian-orthogonal-decomposition",
        "downstream_course_id": "RT-FIN",
        "downstream_lesson_id": "representations-and-complete-reducibility",
        "downstream_source_sha256": "659942bdf47420e6665d59c4e80cf973867730d3b231d7e9c80ab8177bd83712",
        "locus": "Proposition 2.1 and the orthogonal-complement argument immediately after it; Section 7 states the assumed fact",
        "required_statement": "Every finite-dimensional positive definite complex Hermitian space has an orthonormal basis and V=U direct-sum U-perp, with the inner product linear in its first variable.",
        "required_conditions": [
          "complex scalars",
          "positive definite Hermitian form",
          "finite-dimensional",
          "conjugate-linearity convention recorded"
        ],
        "candidate_core_course_id": "B40",
        "comparison": "unchecked",
        "full_matching_provider_proof_read": false,
        "proof_closed": false,
        "finding_en": "Do not route the complex Hermitian result to a real Euclidean projection merely because both are called orthogonal projection. Locate and read the complex proof and its prerequisites before admitting this dependency.",
        "finding_id": "Jangan memetakan hasil Hermitian kompleks ke proyeksi Euklides riil hanya karena keduanya disebut proyeksi ortogonal. Temukan dan baca pembuktian kompleks beserta prasyaratnya sebelum menerima dependensi ini."
      }
    ],
    "not_claimed": [
      "All 183 broad advanced-to-core reading links are proof checked",
      "Every prerequisite of the representation-theory lesson is closed",
      "The phone's local provider records are already public or independently certified",
      "An English interface constitutes an Indonesian translation of the advanced lessons"
    ],
    "next_actions": [
      "Add an explicit source-preserving editorial sign note to the B40 lemma and its checked reader consumers without overwriting the printed source witness",
      "Bind the basis-extension proof to the actual native public reader anchor before admission",
      "Find the existing complex Hermitian provider and compare its full argument and convention",
      "Extend requirement-level records to the remaining actual downstream uses from the phone's selected catalogue; keep broad preparation routes separate"
    ]
  },
  "unresolved_routes": [],
  "source_field_disagreements": [
    {
      "course": "HA-LCA",
      "take_first_here": [
        "harmonic-analysis-on-locally-compact-groups",
        "foundations-of-von-neumann-algebras",
        "function-algebras-and-approximation",
        "OA-FLOW"
      ],
      "courses_here_to_take_first": [
        "harmonic-analysis-on-locally-compact-groups",
        "foundations-of-von-neumann-algebras",
        "function-algebras-and-approximation",
        "OA-MOD",
        "OA-FLOW"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    },
    {
      "course": "hilbert-algebras",
      "take_first_here": [
        "OA-MOD",
        "harmonic-analysis-on-locally-compact-groups",
        "tensor-products-of-operator-algebras"
      ],
      "courses_here_to_take_first": [
        "foundations-of-von-neumann-algebras",
        "OA-MOD",
        "harmonic-analysis-on-locally-compact-groups",
        "tensor-products-of-operator-algebras"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    },
    {
      "course": "analytic-elements-strips-and-kms",
      "take_first_here": [
        "OA-MOD"
      ],
      "courses_here_to_take_first": [
        "foundations-of-von-neumann-algebras",
        "OA-MOD"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    },
    {
      "course": "OA-FLOW",
      "take_first_here": [
        "OA-MOD"
      ],
      "courses_here_to_take_first": [
        "foundations-of-von-neumann-algebras",
        "OA-MOD"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    },
    {
      "course": "type-iii-factors",
      "take_first_here": [
        "OA-MOD",
        "traces-and-noncommutative-integration",
        "tensor-products-of-operator-algebras"
      ],
      "courses_here_to_take_first": [
        "foundations-of-von-neumann-algebras",
        "OA-MOD",
        "traces-and-noncommutative-integration",
        "tensor-products-of-operator-algebras"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    },
    {
      "course": "injective-factors",
      "take_first_here": [
        "type-iii-factors",
        "measurable-fields-and-direct-integrals",
        "harmonic-analysis-on-locally-compact-groups"
      ],
      "courses_here_to_take_first": [
        "foundations-of-von-neumann-algebras",
        "OA-MOD",
        "traces-and-noncommutative-integration",
        "tensor-products-of-operator-algebras",
        "type-iii-factors",
        "measurable-fields-and-direct-integrals",
        "harmonic-analysis-on-locally-compact-groups"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    },
    {
      "course": "entropy-of-automorphisms",
      "take_first_here": [
        "traces-and-noncommutative-integration",
        "OA-MOD",
        "analytic-elements-strips-and-kms"
      ],
      "courses_here_to_take_first": [
        "foundations-of-von-neumann-algebras",
        "OA-MOD",
        "traces-and-noncommutative-integration",
        "analytic-elements-strips-and-kms"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    },
    {
      "course": "noncommutative-integration",
      "take_first_here": [
        "OA-MOD",
        "measurable-fields-and-direct-integrals",
        "hilbert-algebras"
      ],
      "courses_here_to_take_first": [
        "foundations-of-von-neumann-algebras",
        "OA-MOD",
        "measurable-fields-and-direct-integrals",
        "harmonic-analysis-on-locally-compact-groups",
        "tensor-products-of-operator-algebras",
        "hilbert-algebras"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    },
    {
      "course": "NCG-LOCAL-INDEX",
      "take_first_here": [
        "AN-03",
        "NCG-CYCLIC"
      ],
      "courses_here_to_take_first": [
        "AN-03",
        "foundations-of-von-neumann-algebras",
        "NCG-CYCLIC"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    },
    {
      "course": "LG-MF",
      "take_first_here": [
        "harmonic-analysis-on-locally-compact-groups"
      ],
      "courses_here_to_take_first": [
        "foundations-of-von-neumann-algebras",
        "function-algebras-and-approximation",
        "harmonic-analysis-on-locally-compact-groups"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    },
    {
      "course": "KT-KK",
      "take_first_here": [
        "NCG-LOCAL-INDEX",
        "AN-03",
        "index-theory-of-elliptic-operators"
      ],
      "courses_here_to_take_first": [
        "AN-03",
        "foundations-of-von-neumann-algebras",
        "NCG-CYCLIC",
        "NCG-LOCAL-INDEX",
        "index-theory-of-elliptic-operators"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    },
    {
      "course": "NT-CFT",
      "take_first_here": [
        "NT-ANT",
        "NT-LOC",
        "NT-ADL"
      ],
      "courses_here_to_take_first": [
        "NT-ANT",
        "foundations-of-von-neumann-algebras",
        "function-algebras-and-approximation",
        "harmonic-analysis-on-locally-compact-groups",
        "NT-LOC",
        "NT-ADL"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    },
    {
      "course": "NOE-RAT",
      "take_first_here": [
        "AG-CA",
        "NOE-HYP",
        "NT-LOC",
        "AG-MO",
        "AG-QC",
        "NT-ANT",
        "AG-HP",
        "the-field-with-one-element",
        "ag-etale-cohomology"
      ],
      "courses_here_to_take_first": [
        "AG-CA",
        "NOE-HYP",
        "foundations-of-von-neumann-algebras",
        "function-algebras-and-approximation",
        "harmonic-analysis-on-locally-compact-groups",
        "NT-LOC",
        "AG-MO",
        "derived-categories-and-sheaf-operations",
        "AG-QC",
        "NT-ANT",
        "AG-HP",
        "the-field-with-one-element",
        "ag-etale-cohomology"
      ],
      "disposition": "union_for_reading_routes_only; no proof-certification"
    }
  ],
  "unfinished": [
    "Read exact required downstream statements and full matching core proofs; bind native unit/result/anchor and conditions for every actual mathematical dependency.",
    "Reconcile local phone projection with the separately pinned public advanced edition; counts are distinct snapshots, not additive.",
    "Add proof-provider routes only after actual public source/anchor readback; never manufacture a route for a local draft."
  ],
  "source_bound_lesson_routes": [
    {
      "schema": "d80-source-bound-lesson-route/1",
      "id": "core-D80-to-derived-categories-diagram-and-cohomology",
      "provider_course": "D80",
      "consumer_course": "derived-categories-and-sheaf-operations",
      "consumer_lesson": "complexes-cones-and-localization",
      "relation": "writer_reported_proof_prerequisite",
      "admission": "verified_public_reading_route",
      "independent_mathematical_admission": false,
      "whole_prerequisite_closure": false,
      "source_report_repetitions": 32,
      "distinct_course_relationships": 1,
      "provider": {
        "url": "https://kokunoyumeto.github.io/methods-of-algebra-volume-2-en/",
        "bytes": 4494800,
        "sha256": "fbc3f62e83215690adb4f4909f7df05e6cc1472e5c9d7558b04611a427543a16",
        "content_language": "en",
        "author": "Wen-Wei Li",
        "work": "Methods of Algebra, Volume 2",
        "edition": "English translation",
        "rights": "CC-BY-4.0"
      },
      "readings": [
        {
          "id": "chapter2-unit-021",
          "anchor": "chapter2-unit-021--definition-of-an-abelian-category",
          "url": "https://kokunoyumeto.github.io/methods-of-algebra-volume-2-en/#chapter2-unit-021--definition-of-an-abelian-category",
          "title": {
            "en": "Definition of an Abelian Category",
            "id": "Definisi kategori abelian"
          },
          "content_language": "en",
          "editable_source": {
            "url": "https://raw.githubusercontent.com/KokunoYumeto/methods-of-algebra-volume-2-en/main/source/en/chapter2-unit-021.tex",
            "bytes": 8424,
            "sha256": "86b85ff540c9859bb8172dd218a65a945cde870880fdd734928a342d5c2870b6"
          },
          "rights": "CC-BY-4.0",
          "author": "Wen-Wei Li"
        },
        {
          "id": "chapter2-unit-023",
          "anchor": "chapter2-unit-023--some-diagram-lemmas",
          "url": "https://kokunoyumeto.github.io/methods-of-algebra-volume-2-en/#chapter2-unit-023--some-diagram-lemmas",
          "title": {
            "en": "Some Diagram Lemmas",
            "id": "Beberapa lema diagram"
          },
          "content_language": "en",
          "editable_source": {
            "url": "https://raw.githubusercontent.com/KokunoYumeto/methods-of-algebra-volume-2-en/main/source/en/chapter2-unit-023.tex",
            "bytes": 24152,
            "sha256": "65ce863946f2f3f4fa33f4aa088f59e6aa82ed8403e93f8939e1c269e6863a5d"
          },
          "rights": "CC-BY-4.0",
          "author": "Wen-Wei Li"
        },
        {
          "id": "chapter3-unit-037",
          "anchor": "chapter3-unit-037--complexes-on-an-abelian-category",
          "url": "https://kokunoyumeto.github.io/methods-of-algebra-volume-2-en/#chapter3-unit-037--complexes-on-an-abelian-category",
          "title": {
            "en": "Complexes on an Abelian Category",
            "id": "Kompleks pada kategori abelian"
          },
          "content_language": "en",
          "editable_source": {
            "url": "https://raw.githubusercontent.com/KokunoYumeto/methods-of-algebra-volume-2-en/main/source/en/chapter3-unit-037.tex",
            "bytes": 13395,
            "sha256": "206451f9e042699e30881d1f8a0085b95e626166dd56fb638286effec90ab759"
          },
          "rights": "CC-BY-4.0",
          "author": "Wen-Wei Li"
        }
      ],
      "consumer": {
        "url": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/complexes-cones-and-localization.html",
        "bytes": 57574,
        "sha256": "d62cbe582b8510f9a4f9653813ff681a529c4f4986cce648355a5167f0341c7c",
        "content_language": "en",
        "title": {
          "en": "Complexes, cones and localization",
          "id": "Kompleks, kerucut, dan lokalisasi"
        },
        "editable_source": {
          "url": "https://kokunoyumeto.github.io/open-math-courses-public/courses/derived-categories-and-sheaf-operations/src/complexes-cones-and-localization.md",
          "bytes": 31676,
          "sha256": "c54c6fe875fb64263430224ba9a2b9270db48cc4f77b92f4b1e46b00671898c2"
        },
        "rights": "GFDL-1.2-or-later; original independent passages retain CC0",
        "course_complete": false
      },
      "reader_notice": {
        "kind": "confirmed_diagram_correspondence_defect",
        "figure_id": "chapter2-unit-023-d015",
        "producer_fix_complete": false,
        "label": {
          "id": "Catatan diagram lema lima",
          "en": "Five Lemma diagram notice"
        },
        "text": {
          "id": "Deskripsi diagram lema lima dalam pembaca HTML tertaut keliru: deskripsi itu berasal dari diagram lema ular sebelumnya. Diagram yang benar memuat X1 sampai X5 di atas Y1 sampai Y5, dengan peta vertikal f1 sampai f5. Gunakan diagram dalam PDF halaman 119 (nomor cetak 109) atau sumber LaTeX berikut. Temuan ini mengenai konversi diagram, bukan kesalahan teorema; pembaca asal belum diperbaiki.",
          "en": "The linked HTML reader gives the preceding Snake Lemma diagram's description at the Five Lemma. The correct diagram has X1 through X5 above Y1 through Y5, with vertical maps f1 through f5. Use PDF page 119 (printed page 109) or the LaTeX source below. This is a diagram-conversion defect, not a finding against the theorem; the original reader has not yet been repaired."
        },
        "pdf": {
          "url": "https://raw.githubusercontent.com/KokunoYumeto/methods-of-algebra-volume-2-en/674ef26c04dba544e80a95a3f320a9961649407c/output/pdf/methods-of-algebra-volume-2-independent-english-edition.pdf#page=119",
          "bytes": 3894743,
          "sha256": "8193d44ef52c9c39807e769ad04507130f163481f82aa9cfaa0a1a3022ef7aa5"
        },
        "tex_url": "https://raw.githubusercontent.com/KokunoYumeto/methods-of-algebra-volume-2-en/674ef26c04dba544e80a95a3f320a9961649407c/source/en/chapter2-unit-023.tex",
        "evidence": {
          "path": "backend/cross-programme-v1/d80-diagram-notice-evidence-v1.json",
          "bytes": 3171,
          "sha256": "5d3e3f84ed46b09f19987ddec91b1c3c782e12dd92dc9325b096958073c553d2"
        }
      },
      "use_loci": [
        {
          "provider_labels": [
            "prop:Abel-cat-pull-push",
            "prop:Abel-cat-exact-aux",
            "prop:snake-lemma",
            "prop:long-exact-sequence-ses"
          ],
          "consumer_locus": "Lemma 1.2, entire proof",
          "label": {
            "id": "Lema 1.2, seluruh pembuktian",
            "en": "Lemma 1.2, entire proof"
          },
          "conditions": {
            "id": "Kategori abelian sebarang; barisan eksak pendek kompleks kokrantai pada setiap derajat; pengangkatan melalui epimorfisme, bukan melalui elemen.",
            "en": "Arbitrary abelian category; degreewise short exact sequence of cochain complexes; epimorphic rather than elementwise lifts."
          },
          "comparison": {
            "id": "Pelajaran lanjutan menggunakan konstruksi dari kokernel d^(n-2) ke kernel d^n dengan peta vertikal d^(n-1), sesuai indeks yang telah dikoreksi dalam sumber.",
            "en": "The consumer reproduces the cokernel d^(n-2) to kernel d^n construction with vertical d^(n-1), matching the corrected provider indices."
          }
        },
        {
          "provider_labels": [
            "prop:5-lemma"
          ],
          "consumer_locus": "Lemma 2.4, final paragraph",
          "label": {
            "id": "Lema 2.4, paragraf terakhir",
            "en": "Lemma 2.4, final paragraph"
          },
          "conditions": {
            "id": "Barisan eksak dengan lima suku berupa grup abelian setelah penerapan funktor representabel; keempat peta vertikal di sekitar peta tengah merupakan isomorfisme.",
            "en": "Exact five-term sequences of abelian groups after applying representable functors; four surrounding vertical maps are isomorphisms."
          },
          "comparison": {
            "id": "Hipotesis ini memenuhi syarat epimorfisme dan monomorfisme di ujung serta syarat isomorfisme di bagian dalam pada lema lima dalam sumber.",
            "en": "These hypotheses imply the provider Five Lemma endpoint epi/mono conditions and the inner isomorphism conditions."
          }
        }
      ],
      "scope": {
        "id": "Bacaan ini menyediakan kategori abelian, pengangkatan epimorfik, lema ular dan lema lima, serta barisan kohomologi panjang. Pembuktian kerucut dan lokalisasi dikerjakan dalam pelajaran lanjutan; bukan konsekuensi dari tautan ini.",
        "en": "These readings supply abelian categories, epimorphic lifts, the Snake and Five Lemmas, and the long exact cohomology sequence. Cone and localization proofs belong to the advanced lesson; this link does not certify them."
      },
      "verification": {
        "public_byte_identity": true,
        "public_section_anchors": true,
        "consumer_use_loci_present": true,
        "producer_files_changed": false,
        "mathematical_review": {
          "id": "Perbandingan sumber terbatas oleh AI pengintegrasi; bukan klaim pemeriksaan lengkap semua prasyarat atau peninjauan independen seluruh mata kuliah.",
          "en": "Bounded source comparison by the integrating AI; no complete prerequisite-closure or independent-course-review claim."
        }
      },
      "upstream_evidence": [
        {
          "kind": "manager_r42",
          "bytes": 60560,
          "sha256": "16402aa02a6713d3bb00ffc96ce4868ae93db4bb18693983b0019d959afe3d9c"
        },
        {
          "kind": "manager_r43",
          "bytes": 114012,
          "sha256": "40c5b39db6d1426326a1650aaa91f92c92493d2161ba80700ed2c398ec411223"
        }
      ],
      "change_policy": {
        "id": "Perubahan revisi sumber atau pelajaran pengguna harus diperiksa terhadap penggunaan yang tepat; mengganti URL tidak memvalidasi ulang suatu argumen.",
        "en": "Provider or consumer revision changes require use-specific reconciliation; replacing a URL does not revalidate an argument."
      },
      "provenance": {
        "model": "gpt-6-astra",
        "effort": "ultra",
        "human_review_claimed": false,
        "scope": {
          "id": "Integrasi jalur bacaan yang terikat pada sumber dan perbandingan penggunaan terbatas; kredit penulis dan penerjemah sumber dipertahankan.",
          "en": "Source-bound reading-route integration and bounded use comparison; source authorship and translation credits retained."
        }
      },
      "checked_at": "2026-10-02T08:30:46.006981+00:00"
    },
    {
      "schema": "b40-source-bound-proof-route/1",
      "provider_course": "B40",
      "native_provider": "CORE-B40/from-bases-to-projections",
      "source_revision": "r2",
      "source_sha256": "131f01c7611a96c60a0dfdaf08c7b17e0f1a864dd371968ecd858b19f4e49652",
      "reader_manifest": "docs/en/readers/basis-projection-bridge/READER_MANIFEST.json",
      "reader_url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/basis-projection-bridge/",
      "proof_anchor": "extending-a-basis-and-choosing-a-complement",
      "content_language": "en",
      "rights": "CC-BY-SA-2.5",
      "consumer_course": "RT-FIN",
      "consumer_lesson": "representations-and-complete-reducibility",
      "consumer_revision": "801f186833b9811fa826575ef0717e78a5047ab0",
      "consumer_source_sha256": "659942bdf47420e6665d59c4e80cf973867730d3b231d7e9c80ab8177bd83712",
      "consumer_reader_sha256": "fc0fe3b74413f9e6179c5a11761cd81cb1a07e2cef1b26d635957af63780b31c",
      "consumer_reader_bytes": 62793,
      "consumer_url": "https://kokunoyumeto.github.io/open-math-courses-public/courses/RT-FIN/representations-and-complete-reducibility.html",
      "uses": [
        {
          "locus": "Theorem 2.3",
          "anchor": "2-averaging-separates-invariant-pieces"
        },
        {
          "locus": "Exercise 5",
          "anchor": "exercise-5-hard-an-isotypic-projection"
        }
      ],
      "review": "bounded self-review of finite basis extension, projection construction and the two stated uses",
      "independent_mathematical_admission": false,
      "whole_prerequisite_closure": false,
      "hermitian_dependency_closed": false,
      "native_catalogue_admission_changed": false,
      "public_reader_readback": "pending_deployment",
      "scope": {
        "en": "For a finite-dimensional vector space over any field, extend a subspace basis and construct a linear projection onto that subspace. Theorem 2.3 and Exercise 5 use this ordinary projection before averaging. Invertibility of the group order is an additional condition for averaging, not for basis extension.",
        "id": "Untuk ruang vektor berdimensi hingga atas medan sebarang, perluas basis subruang dan bangun proyeksi linear ke subruang tersebut. Teorema 2.3 dan Latihan 5 memakai proyeksi biasa ini sebelum proses perataan. Syarat bahwa orde grup dapat dibalik diperlukan untuk perataan, bukan untuk perluasan basis."
      },
      "limits": {
        "en": "This source-bound self-review does not certify the full lesson or its other prerequisites. Complex Hermitian orthogonal decomposition is supplied by the separate orthonormal-basis bridge linked alongside this route, not by this algebraic projection proof. The original source witness and the producer's admission state are unchanged.",
        "id": "Pemeriksaan mandiri yang terikat pada sumber ini tidak mengesahkan seluruh pelajaran atau prasyarat lainnya. Dekomposisi ortogonal Hermitian kompleks disediakan oleh materi penghubung basis ortonormal yang ditautkan di samping jalur ini, bukan oleh pembuktian proyeksi aljabar ini. Sumber asli dan status penerimaan pada katalog penyusun tidak diubah."
      },
      "editorial_note": {
        "en": "The bridge explicitly repairs the previously recorded missing minus sign, preserves the printed source unchanged, and includes the finite-termination and projection proofs, examples and solutions.",
        "id": "Materi penghubung ini secara eksplisit memperbaiki tanda minus yang hilang dan telah dicatat sebelumnya, mempertahankan sumber cetak tanpa perubahan, serta memuat pembuktian penghentian hingga dan proyeksi, contoh, dan solusi."
      },
      "provenance": {
        "model": "gpt-6-astra",
        "effort": "ultra",
        "human_review_claimed": false
      }
    },
    {
      "schema": "finite-hermitian-proof-route/1",
      "provider_course": "B40",
      "consumer_course": "RT-FIN",
      "consumer_lesson": "representations-and-complete-reducibility",
      "consumer_source_sha256": "659942bdf47420e6665d59c4e80cf973867730d3b231d7e9c80ab8177bd83712",
      "consumer_revision": "801f186833b9811fa826575ef0717e78a5047ab0",
      "reader_manifest": "docs/en/readers/finite-hermitian-spaces/READER_MANIFEST.json",
      "reader_url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/finite-hermitian-spaces/",
      "source_sha256": "a8547e894bab4c4eb862086af6fc078519945e11aa9976ba823bde94cbef551c",
      "content_language": "en",
      "rights": "CC-BY-SA-4.0",
      "proof_review": "author-instance self-review",
      "independent_mathematical_admission": false,
      "whole_prerequisite_closure": false,
      "native_catalogue_admission_changed": false,
      "uses": [
        {
          "consumer_locus": "Proposition 2.1",
          "proof_anchor": "gramschmidt-with-the-coefficients-in-the-correct-order"
        },
        {
          "consumer_locus": "Orthogonal splitting following Proposition 2.1",
          "proof_anchor": "orthogonal-projection-and-decomposition"
        }
      ],
      "scope": {
        "en": "Full elementary proofs of Gram–Schmidt and orthogonal decomposition supply the orthonormal basis and invariant-complement uses in the opening representation-theory lesson. Complex inner products are linear in the first variable. Examples and complete exercise solutions are included.",
        "id": "Pembuktian elementer lengkap untuk Gram–Schmidt dan dekomposisi ortogonal menyediakan basis ortonormal serta komplemen invarian yang digunakan dalam pelajaran pembuka teori representasi. Hasil kali dalam kompleks linear pada variabel pertama. Contoh dan solusi lengkap latihan disertakan."
      },
      "limits": {
        "en": "This English-only bridge has author-instance AI self-review, not independent certification. It supplies these two uses, not all prerequisites of the course. The general Hilbert-space projection theorem remains a separate, linked treatment.",
        "id": "Materi penghubung ini hanya tersedia dalam bahasa Inggris dan diperiksa sendiri oleh AI penulis, bukan melalui pengesahan independen. Materi ini menyediakan dua penggunaan tersebut, bukan semua prasyarat mata kuliah. Teorema proyeksi umum pada ruang Hilbert tetap disediakan dalam pembahasan terpisah yang ditautkan."
      },
      "localized_terminology_source": {
        "work": "Erdman, Bahasa Indonesia edition",
        "source_sha256": "4ab3098cab358f425190bfe6defa20d3ec7b2a81653e0e61bbfa67e497e2654d",
        "loci": "linalg-id.tex lines 988-1014",
        "choices": [
          "basis ortonormal",
          "ruang hasil kali dalam",
          "komplemen ortogonal"
        ]
      },
      "provenance": {
        "model": "OpenAI Codex GPT-6 Astra",
        "effort": "Ultra",
        "human_review_claimed": false
      }
    }
  ],
  "b40_prerequisite_reader": {
    "path": "docs/en/readers/basis-projection-bridge/READER_MANIFEST.json",
    "bytes": 2409,
    "sha256": "cfd31b93bfafbf21d5aceb18d4e2a8bb6293e6cd4010f3f74bd5c999a17bcb54"
  },
  "finite_hermitian_reader": {
    "path": "docs/en/readers/finite-hermitian-spaces/READER_MANIFEST.json",
    "bytes": 1645,
    "sha256": "e4376c9e655ac1cbfba0a645faced055e0e861dfe4fbbffe1b819ba1d34e67ba"
  },
  "result_requirement_findings_context": {
    "role": "historical_snapshot",
    "source": {
      "path": "backend/cross-programme-v1/PROOF_SCOPE_FINDINGS.json",
      "bytes": 6617,
      "sha256": "178c795527910bd0c91b71a4a8aaa0f962589ccd4d19b7092999b436e4dbbfe9"
    },
    "current_status_field": "current_result_requirements",
    "independent_review_not_inferred": true,
    "native_catalogue_admission_changed": false
  },
  "current_result_requirements": [
    {
      "id": "RT-FIN-01.basis-extension",
      "status": "proof_supplied_author_self_review",
      "historical_finding_id": "RT-FIN-01.basis-extension",
      "required_statement": "An independent set in a finite-dimensional vector space over any field extends to a basis of that space.",
      "required_conditions": [
        "finite-dimensional vector space",
        "scalars in a field, not just the reals",
        "initial set linearly independent"
      ],
      "consumer": {
        "course": "RT-FIN",
        "lesson": "representations-and-complete-reducibility",
        "revision": "801f186833b9811fa826575ef0717e78a5047ab0",
        "source": {
          "path": "backend/cross-programme-v1/proof-sample/advanced/RT-FIN-01.md",
          "bytes": 31822,
          "sha256": "659942bdf47420e6665d59c4e80cf973867730d3b231d7e9c80ab8177bd83712"
        },
        "uses": [
          {
            "locus": "Theorem 2.3",
            "anchor": "2-averaging-separates-invariant-pieces"
          },
          {
            "locus": "Exercise 5",
            "anchor": "exercise-5-hard-an-isotypic-projection"
          }
        ]
      },
      "provider": {
        "course": "B40",
        "source": {
          "path": "docs/en/readers/basis-projection-bridge/from-bases-to-projections-r2.md",
          "bytes": 13266,
          "sha256": "131f01c7611a96c60a0dfdaf08c7b17e0f1a864dd371968ecd858b19f4e49652"
        },
        "route": {
          "path": "backend/cross-programme-v1/b40-prerequisite-route-v1.json",
          "bytes": 3560,
          "sha256": "d558857bcdd6fce652ae18d6a8906f581d4bc9e1fbcd25f0d54dcac31c882b2c"
        },
        "reader_manifest": {
          "path": "docs/en/readers/basis-projection-bridge/READER_MANIFEST.json",
          "bytes": 2409,
          "sha256": "cfd31b93bfafbf21d5aceb18d4e2a8bb6293e6cd4010f3f74bd5c999a17bcb54"
        },
        "reader_url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/basis-projection-bridge/",
        "content_language": "en",
        "proof_anchors": [
          "extending-a-basis-and-choosing-a-complement"
        ]
      },
      "author_review": {
        "path": "docs/en/readers/basis-projection-bridge/ADAPTATION_R2.json",
        "bytes": 1747,
        "sha256": "f37193aa82ce900393c210e2a9da3d90b8bcc7f0b6e86bab2de847b58741c609"
      },
      "independent_review": false,
      "whole_prerequisite_closure": false,
      "native_catalogue_admission_changed": false,
      "historical_issue_disposition": "printed_sign_preserved_and_corrected_in_bridge",
      "scope": {
        "en": "For a finite-dimensional vector space over any field, extend a subspace basis and construct a linear projection onto that subspace. Theorem 2.3 and Exercise 5 use this ordinary projection before averaging. Invertibility of the group order is an additional condition for averaging, not for basis extension.",
        "id": "Untuk ruang vektor berdimensi hingga atas medan sebarang, perluas basis subruang dan bangun proyeksi linear ke subruang tersebut. Teorema 2.3 dan Latihan 5 memakai proyeksi biasa ini sebelum proses perataan. Syarat bahwa orde grup dapat dibalik diperlukan untuk perataan, bukan untuk perluasan basis."
      },
      "limits": {
        "en": "This source-bound self-review does not certify the full lesson or its other prerequisites. Complex Hermitian orthogonal decomposition is supplied by the separate orthonormal-basis bridge linked alongside this route, not by this algebraic projection proof. The original source witness and the producer's admission state are unchanged.",
        "id": "Pemeriksaan mandiri yang terikat pada sumber ini tidak mengesahkan seluruh pelajaran atau prasyarat lainnya. Dekomposisi ortogonal Hermitian kompleks disediakan oleh materi penghubung basis ortonormal yang ditautkan di samping jalur ini, bukan oleh pembuktian proyeksi aljabar ini. Sumber asli dan status penerimaan pada katalog penyusun tidak diubah."
      },
      "provenance": {
        "model": "gpt-6-astra",
        "effort": "ultra",
        "human_review_claimed": false
      }
    },
    {
      "id": "RT-FIN-01.hermitian-orthogonal-decomposition",
      "status": "proof_supplied_author_self_review",
      "historical_finding_id": "RT-FIN-01.hermitian-orthogonal-decomposition",
      "required_statement": "Every finite-dimensional positive definite complex Hermitian space has an orthonormal basis and V=U direct-sum U-perp, with the inner product linear in its first variable.",
      "required_conditions": [
        "complex scalars",
        "positive definite Hermitian form",
        "finite-dimensional",
        "conjugate-linearity convention recorded"
      ],
      "consumer": {
        "course": "RT-FIN",
        "lesson": "representations-and-complete-reducibility",
        "revision": "801f186833b9811fa826575ef0717e78a5047ab0",
        "source": {
          "path": "backend/cross-programme-v1/proof-sample/advanced/RT-FIN-01.md",
          "bytes": 31822,
          "sha256": "659942bdf47420e6665d59c4e80cf973867730d3b231d7e9c80ab8177bd83712"
        },
        "uses": [
          {
            "consumer_locus": "Proposition 2.1",
            "proof_anchor": "gramschmidt-with-the-coefficients-in-the-correct-order"
          },
          {
            "consumer_locus": "Orthogonal splitting following Proposition 2.1",
            "proof_anchor": "orthogonal-projection-and-decomposition"
          }
        ]
      },
      "provider": {
        "course": "B40",
        "source": {
          "path": "docs/en/readers/finite-hermitian-spaces/finite-hermitian-spaces.md",
          "bytes": 13240,
          "sha256": "a8547e894bab4c4eb862086af6fc078519945e11aa9976ba823bde94cbef551c"
        },
        "route": {
          "path": "backend/cross-programme-v1/finite-hermitian-route-v1.json",
          "bytes": 2741,
          "sha256": "7b96a876bc282b0531c58f0bed88201ab3e0f3b5001d020f6a85241fb51e234d"
        },
        "reader_manifest": {
          "path": "docs/en/readers/finite-hermitian-spaces/READER_MANIFEST.json",
          "bytes": 1645,
          "sha256": "e4376c9e655ac1cbfba0a645faced055e0e861dfe4fbbffe1b819ba1d34e67ba"
        },
        "reader_url": "https://kokunoyumeto.github.io/program-matematika-indonesia/en/readers/finite-hermitian-spaces/",
        "content_language": "en",
        "proof_anchors": [
          "gramschmidt-with-the-coefficients-in-the-correct-order",
          "orthogonal-projection-and-decomposition"
        ]
      },
      "author_review": {
        "path": "docs/en/readers/finite-hermitian-spaces/SOURCE_REVIEW.json",
        "bytes": 6326,
        "sha256": "c5c7b5a19f0a85093889f4264332556e6a08bc3d9496e43fe1e7c954acc7307c"
      },
      "independent_review": false,
      "whole_prerequisite_closure": false,
      "native_catalogue_admission_changed": false,
      "historical_issue_disposition": "matching_complex_linear_first_proof_supplied",
      "scope": {
        "en": "Full elementary proofs of Gram–Schmidt and orthogonal decomposition supply the orthonormal basis and invariant-complement uses in the opening representation-theory lesson. Complex inner products are linear in the first variable. Examples and complete exercise solutions are included.",
        "id": "Pembuktian elementer lengkap untuk Gram–Schmidt dan dekomposisi ortogonal menyediakan basis ortonormal serta komplemen invarian yang digunakan dalam pelajaran pembuka teori representasi. Hasil kali dalam kompleks linear pada variabel pertama. Contoh dan solusi lengkap latihan disertakan."
      },
      "limits": {
        "en": "This English-only bridge has author-instance AI self-review, not independent certification. It supplies these two uses, not all prerequisites of the course. The general Hilbert-space projection theorem remains a separate, linked treatment.",
        "id": "Materi penghubung ini hanya tersedia dalam bahasa Inggris dan diperiksa sendiri oleh AI penulis, bukan melalui pengesahan independen. Materi ini menyediakan dua penggunaan tersebut, bukan semua prasyarat mata kuliah. Teorema proyeksi umum pada ruang Hilbert tetap disediakan dalam pembahasan terpisah yang ditautkan."
      },
      "provenance": {
        "model": "OpenAI Codex GPT-6 Astra",
        "effort": "Ultra",
        "human_review_claimed": false
      }
    }
  ],
  "human_analysis_readings": {
    "schema": "programme-human-analysis-readings/1",
    "title": "Basic Analysis",
    "author": "Jiří Lebl",
    "licence": "CC-BY-SA-4.0",
    "content_language": "en",
    "reading_url": "https://www.jirka.org/ra/",
    "attribution_url": "https://www.jirka.org/ra/",
    "source_archive": {
      "url": "https://www.jirka.org/ra/",
      "final_url": "https://www.jirka.org/ra/",
      "status": 200,
      "bytes": 1961899,
      "sha256": "53d3dc5da2efc84ed21ed648465003110b1766feee03722bec4980b190b55e95"
    },
    "checked_utc": "2026-10-03T16:03:28.448700+00:00",
    "routes": [
      {
        "id": "human.lebl.analysis.sec_rintprop",
        "titles": {
          "en": "Properties of the integral",
          "id": "Sifat-sifat integral"
        },
        "course_ids": [
          "C10"
        ],
        "content_language": "en",
        "reader": {
          "url": "https://www.jirka.org/ra/html/sec_rintprop.html",
          "bytes": 88036,
          "sha256": "160b59e87ceda09d392bf73621b75aef72344aec1f928f18640977aaa84afb58"
        },
        "source": {
          "archive": "https://www.jirka.org/ra/",
          "member": "ch-riemann.tex",
          "sha256": "d6f8e5b1e5425036a9e5dfbd300e4b9df795e6a79900c58333bf3eac1990c9e6",
          "label": "sec:rintprop"
        },
        "author": "Jiří Lebl",
        "licence": "CC-BY-SA-4.0",
        "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
        "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
        "anchors": [
          "ptx-content",
          "sec_rintprop",
          "sec_rintprop-2",
          "sec_rintprop-2-1",
          "sec_rintprop-3",
          "sec_rintprop-3-2",
          "lemma_darbouxadd",
          "lemma_darbouxadd-1-1",
          "lemma_darbouxadd-1-1-3",
          "sec_rintprop-3-4",
          "sec_rintprop-3-4-1",
          "sec_rintprop-3-4-1-7",
          "sec_rintprop-3-4-1-25",
          "sec_rintprop-3-4-2",
          "sec_rintprop-3-4-2-4",
          "sec_rintprop-3-4-2-20",
          "sec_rintprop-3-5",
          "sec_rintprop-3-5-1-1",
          "sec_rintprop-3-5-1-1-7",
          "sec_rintprop-3-6",
          "sec_rintprop-3-6-1",
          "sec_rintprop-3-6-1-3",
          "sec_rintprop-3-6-1-4",
          "sec_rintprop-3-6-1-7",
          "sec_rintprop-3-6-2",
          "sec_rintprop-3-6-2-4",
          "sec_rintprop-3-7",
          "intsubcor",
          "intsubcor-1-1",
          "sec_rintprop-4",
          "sec_rintprop-4-2",
          "prop_integrallinear",
          "prop_integrallinear-3-1",
          "prop_integrallinear-3-2",
          "prop_integrallinear-3-2-1",
          "prop_integrallinear-3-2-1-1",
          "prop_integrallinear-3-2-1-1-3",
          "prop_integrallinear-3-2-2",
          "prop_integrallinear-3-2-2-1",
          "prop_integrallinear-3-2-2-1-3",
          "sec_rintprop-4-4",
          "sec_rintprop-4-4-1",
          "sec_rintprop-4-4-1-7",
          "sec_rintprop-4-4-1-8",
          "sec_rintprop-4-4-1-9",
          "sec_rintprop-4-4-1-12",
          "sec_rintprop-4-4-1-13",
          "sec_rintprop-4-4-2",
          "sec_rintprop-4-4-3",
          "sec_rintprop-4-5",
          "prop_upperlowerlinineq",
          "prop_upperlowerlinineq-1-1",
          "prop_upperlowerlinineq-1-1-3",
          "sec_rintprop-4-7",
          "sec_rintprop-4-8",
          "sec_rintprop-4-8-3-1",
          "sec_rintprop-4-8-3-1-5",
          "sec_rintprop-4-8-3-1-9",
          "sec_rintprop-4-9",
          "sec_rintprop-4-9-1",
          "sec_rintprop-4-9-1-3",
          "sec_rintprop-4-9-1-6",
          "sec_rintprop-4-9-1-9",
          "sec_rintprop-5",
          "sec_rintprop-5-2",
          "lemma_contint",
          "lemma_contint-1-1",
          "sec_rintprop-5-4",
          "sec_rintprop-5-4-1",
          "sec_rintprop-5-4-2",
          "sec_rintprop-5-4-2-10",
          "sec_rintprop-5-4-2-19",
          "sec_rintprop-5-4-2-20",
          "sec_rintprop-5-4-2-22",
          "sec_rintprop-5-5",
          "lemma_boundedimpriemann",
          "lemma_boundedimpriemann-1-1",
          "lemma_boundedimpriemann-1-1-11",
          "sec_rintprop-5-7",
          "sec_rintprop-5-7-1",
          "sec_rintprop-5-7-1-4",
          "sec_rintprop-5-7-2",
          "sec_rintprop-5-7-2-4",
          "sec_rintprop-5-7-2-7",
          "sec_rintprop-5-7-3",
          "sec_rintprop-5-7-3-1",
          "sec_rintprop-5-7-3-3",
          "sec_rintprop-5-7-4",
          "sec_rintprop-5-8",
          "sec_rintprop-5-9",
          "sec_rintprop-5-9-1-1",
          "sec_rintprop-5-10",
          "sec_rintprop-5-10-1",
          "sec_rintprop-6",
          "sec_rintprop-6-2",
          "sec_rintprop-6-3",
          "sec_rintprop-6-3-1-1",
          "sec_rintprop-6-3-1-1-7",
          "sec_rintprop-6-4",
          "sec_rintprop-6-4-1",
          "sec_rintprop-6-4-2",
          "sec_rintprop-6-5",
          "prop_monotoneintegrable",
          "prop_monotoneintegrable-1-1",
          "sec_rintprop-7",
          "exercise_proofoflinpropparti",
          "exercise_proofoflinpropparti-1-1",
          "exercise_proofoflinpropparti-1-1-6",
          "exercise_proofoflinproppartii",
          "exercise_proofoflinproppartii-1-1",
          "exercise_proofoflinproppartii-1-1-8",
          "exercise_changeendpointsintegral",
          "exercise_changeendpointsintegral-1-1",
          "exercise_changeendpointsintegral-1-1-6",
          "sec_rintprop-7-4",
          "sec_rintprop-7-4-1-1",
          "sec_rintprop-7-5",
          "sec_rintprop-7-5-1-1",
          "sec_rintprop-7-6",
          "sec_rintprop-7-6-1-1",
          "sec_rintprop-7-7",
          "sec_rintprop-7-7-1-1",
          "sec_rintprop-7-8",
          "sec_rintprop-7-8-1-1",
          "sec_rintprop-7-8-1-1-4",
          "sec_rintprop-7-9",
          "sec_rintprop-7-9-1-1",
          "exercise_easyabsint",
          "exercise_easyabsint-1-1",
          "exercise_easyabsint-1-1-4",
          "sec_rintprop-7-11",
          "sec_rintprop-7-11-1-1",
          "sec_rintprop-7-11-1-2",
          "sec_rintprop-7-11-1-2-4",
          "sec_rintprop-7-12",
          "sec_rintprop-7-12-2",
          "exercise_stepfunctionintegrable",
          "exercise_stepfunctionintegrable-1-1",
          "sec_rintprop-7-14",
          "sec_rintprop-7-14-3",
          "sec_rintprop-7-15",
          "sec_rintprop-7-15-1-1",
          "exercise_boundedvariationintegrable",
          "exercise_boundedvariationintegrable-1-1",
          "exercise_boundedvariationintegrable-1-2",
          "exercise_boundedvariationintegrable-1-2-1",
          "exercise_boundedvariationintegrable-1-2-1-1",
          "exercise_boundedvariationintegrable-1-2-2",
          "exercise_boundedvariationintegrable-1-2-2-1",
          "exercise_boundedvariationintegrable-1-2-3",
          "exercise_boundedvariationintegrable-1-2-3-1",
          "exercise_boundedvariationintegrable-1-2-3-1-1",
          "exercise_boundedvariationintegrable-1-2-3-1-1",
          "exercise_hardabsint",
          "exercise_hardabsint-1-1",
          "exercise_upperlowerlinineq",
          "exercise_upperlowerlinineq-1-1",
          "exercise_upperlowerlinineq-1-2",
          "exercise_upperlowerlinineq-1-2-1",
          "exercise_upperlowerlinineq-1-2-1-1",
          "exercise_upperlowerlinineq-1-2-2",
          "exercise_upperlowerlinineq-1-2-2-1",
          "sec_rintprop-7-19",
          "sec_rintprop-7-19-1-1",
          "sec_rintprop-7-19-1-1-3",
          "exercise_rieleblem",
          "exercise_rieleblem-1-1",
          "exercise_rieleblem-1-1-4",
          "ptx-content-footer"
        ],
        "relation": "supplementary_reading",
        "mathematical_consumer_equivalence": "not_inferred",
        "whole_course_completion": false
      },
      {
        "id": "human.lebl.analysis.sec_rint",
        "titles": {
          "en": "The Riemann integral",
          "id": "Integral Riemann"
        },
        "course_ids": [
          "C10",
          "B30"
        ],
        "content_language": "en",
        "reader": {
          "url": "https://www.jirka.org/ra/html/sec_rint.html",
          "bytes": 84921,
          "sha256": "e50422b32a44b596fd10dab64510c85b0d7ed7876169fb99d008ef32cbd97c79"
        },
        "source": {
          "archive": "https://www.jirka.org/ra/",
          "member": "ch-riemann.tex",
          "sha256": "d6f8e5b1e5425036a9e5dfbd300e4b9df795e6a79900c58333bf3eac1990c9e6",
          "label": "sec:rint"
        },
        "author": "Jiří Lebl",
        "licence": "CC-BY-SA-4.0",
        "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
        "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
        "anchors": [
          "ptx-content",
          "sec_rint",
          "sec_rint-2",
          "sec_rint-2-1",
          "sec_rint-2-2",
          "sec_rint-2-2-5",
          "sec_rint-2-2-5",
          "sec_rint-2-2-6",
          "sec_rint-2-2-6",
          "sec_rint-3",
          "sec_rint-3-2",
          "sec_rint-3-3",
          "sec_rint-3-3-1-1",
          "sec_rint-3-3-1-1-5",
          "sec_rint-3-3-1-1-6",
          "sec_rint-3-3-1-1-10",
          "sec_rint-3-4",
          "darbouxfig",
          "sumulbound_prop",
          "sumulbound_prop-1-1",
          "sumulbound_eq",
          "sec_rint-3-9",
          "sec_rint-3-9-1",
          "sec_rint-3-9-1-6",
          "sec_rint-3-10",
          "sec_rint-3-10-1-1",
          "sec_rint-3-10-1-1-1",
          "sec_rint-3-10-1-1-7",
          "sec_rint-3-11",
          "example_dirichletfunc",
          "example_dirichletfunc-1-1",
          "example_dirichletfunc-1-1-7",
          "example_dirichletfunc-1-1-12",
          "sec_rint-3-13",
          "sec_rint-3-13-1-1",
          "sec_rint-3-14",
          "sec_rint-3-15",
          "sec_rint-3-15-1-1",
          "sec_rint-3-16",
          "prop_refinement",
          "prop_refinement-1-1",
          "prop_refinement-1-1-6",
          "sec_rint-3-18",
          "sec_rint-3-18-1",
          "sec_rint-3-18-2",
          "sec_rint-3-18-2-4",
          "fig_refinement",
          "sec_rint-3-18-6",
          "sec_rint-3-18-6-6",
          "sec_rint-3-18-6-7",
          "sec_rint-3-18-7",
          "sec_rint-3-19",
          "intulbound_prop",
          "intulbound_prop-1-1",
          "intulbound_eq",
          "sec_rint-3-21",
          "sec_rint-3-21-1",
          "sec_rint-3-21-1-3",
          "sec_rint-3-21-2",
          "sec_rint-3-21-2-12",
          "sec_rint-3-21-2-17",
          "sec_rint-4",
          "sec_rint-4-2",
          "sec_rint-4-3",
          "sec_rint-4-3-1-1",
          "sec_rint-4-3-1-1-2",
          "sec_rint-4-3-1-1-8",
          "sec_rint-4-3-1-1-9",
          "sec_rint-4-4",
          "intbound_prop",
          "intbound_prop-1-1",
          "intbound_prop-1-1-5",
          "fig_integralminmax",
          "sec_rint-4-9",
          "sec_rint-4-9-3",
          "sec_rint-4-10",
          "sec_rint-4-10-1-1",
          "sec_rint-4-11",
          "sec_rint-4-11-1-1",
          "sec_rint-4-11-1-1-2",
          "sec_rint-4-11-1-2",
          "sec_rint-4-11-1-2-3",
          "darbouxfigstep",
          "sec_rint-4-11-1-6",
          "sec_rint-4-11-1-6-1",
          "sec_rint-4-11-1-6-2",
          "sec_rint-4-11-1-6-8",
          "sec_rint-4-12",
          "sec_rint-4-13",
          "sec_rint-4-13-1-1",
          "sec_rint-4-13-1-1-6",
          "sec_rint-4-14",
          "sec_rint-4-14-1",
          "sec_rint-4-14-1-3",
          "sec_rint-4-15",
          "sec_rint-4-15-1-1",
          "sec_rint-4-15-1-2",
          "sec_rint-4-15-1-2-10",
          "sec_rint-4-15-1-2-11",
          "sec_rint-4-16",
          "sec_rint-4-16-1-1",
          "sec_rint-5",
          "sec_rint-5-2",
          "sec_rint-5-3",
          "sec_rint-5-3-5",
          "sec_rint-5-3-7",
          "sec_rint-5-4",
          "sec_rint-5-4-2",
          "sec_rint-6",
          "sec_rint-6-1",
          "sec_rint-6-1-1-1",
          "sec_rint-6-2",
          "sec_rint-6-2-1-1",
          "sec_rint-6-3",
          "sec_rint-6-3-1-1",
          "sec_rint-6-3-1-1-4",
          "sec_rint-6-3-1-1-6",
          "sec_rint-6-4",
          "sec_rint-6-4-1-1",
          "sec_rint-6-5",
          "sec_rint-6-5-1-1",
          "sec_rint-6-5-1-1-2",
          "sec_rint-6-6",
          "sec_rint-6-6-1-1",
          "sec_rint-6-6-1-1-4",
          "exercise_taggedpartition",
          "exercise_taggedpartition-1-1",
          "exercise_taggedpartition-1-1-7",
          "sec_rint-6-8",
          "sec_rint-6-8-1-1",
          "sec_rint-6-9",
          "sec_rint-6-9-1-1",
          "sec_rint-6-10",
          "sec_rint-6-10-1-1",
          "sec_rint-6-11",
          "sec_rint-6-11-1-1",
          "sec_rint-6-11-1-2",
          "sec_rint-6-11-1-2-1",
          "sec_rint-6-11-1-2-1-1",
          "sec_rint-6-11-1-2-2",
          "sec_rint-6-11-1-2-2-1",
          "exercise_riemannintdarboux",
          "exercise_riemannintdarboux-1-1",
          "sec_rint-6-13",
          "sec_rint-6-13-1-1",
          "sec_rint-6-14",
          "sec_rint-6-14-1-1",
          "sec_rint-6-15",
          "sec_rint-6-15-1-1",
          "ptx-content-footer"
        ],
        "relation": "supplementary_reading",
        "mathematical_consumer_equivalence": "not_inferred",
        "whole_course_completion": false
      },
      {
        "id": "human.lebl.analysis.sec_liminter",
        "titles": {
          "en": "Interchange of limits",
          "id": "Pertukaran limit"
        },
        "course_ids": [
          "C20"
        ],
        "content_language": "en",
        "reader": {
          "url": "https://www.jirka.org/ra/html/sec_liminter.html",
          "bytes": 112802,
          "sha256": "3ff1f89ec5e1f074da0b67b30a853fa03b09e445908873b84e3a068f1986162d"
        },
        "source": {
          "archive": "https://www.jirka.org/ra/",
          "member": "ch-seq-funcs.tex",
          "sha256": "be79007275ea65ab962d2de9e34a20cdebe5afd296068fb5a52a309f4609cbae",
          "label": "sec:liminter"
        },
        "author": "Jiří Lebl",
        "licence": "CC-BY-SA-4.0",
        "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
        "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
        "anchors": [
          "ptx-content",
          "sec_liminter",
          "sec_liminter-2",
          "sec_liminter-2-1",
          "sec_liminter-2-2",
          "sec_liminter-2-2-1",
          "sec_liminter-2-3",
          "sec_liminter-3",
          "sec_liminter-3-2",
          "sec_liminter-3-2-5",
          "sec_liminter-3-3",
          "sec_liminter-3-3-1-1",
          "sec_liminter-3-3-1-1-2",
          "contconvcntr_fig",
          "sec_liminter-3-3-1-5",
          "sec_liminter-3-3-1-5-7",
          "sec_liminter-3-3-1-5-9",
          "sec_liminter-3-3-1-5-12",
          "sec_liminter-3-4",
          "sec_liminter-3-5",
          "sec_liminter-3-5-1-1",
          "sec_liminter-3-6",
          "sec_liminter-3-6-1",
          "sec_liminter-3-6-2",
          "sec_liminter-3-6-2-5",
          "sec_liminter-3-6-2-11",
          "sec_liminter-3-6-2-13",
          "sec_liminter-4",
          "sec_liminter-4-2",
          "sec_liminter-4-3",
          "sec_liminter-4-3-1-1",
          "sec_liminter-4-3-1-1-2",
          "intconvcntr_fig",
          "sec_liminter-4-3-1-5",
          "sec_liminter-4-3-1-5-3",
          "sec_liminter-4-3-1-5-9",
          "sec_liminter-4-3-1-5-13",
          "sec_liminter-4-4",
          "sec_liminter-4-4-1",
          "sec_liminter-4-4-1",
          "integralinterchange_thm",
          "integralinterchange_thm-1-1",
          "integralinterchange_thm-1-1-5",
          "sec_liminter-4-6",
          "sec_liminter-4-6-1",
          "sec_liminter-4-6-1-13",
          "sec_liminter-4-6-2",
          "sec_liminter-4-6-2-5",
          "sec_liminter-4-7",
          "sec_liminter-4-7-1-1",
          "sec_liminter-4-7-1-1-1",
          "sec_liminter-4-7-1-1-8",
          "sec_liminter-4-8",
          "sec_liminter-4-8-1-1",
          "sec_liminter-4-8-1-1-2",
          "sec_liminter-4-8-1-1-10",
          "sec_liminter-4-9",
          "sec_liminter-4-9-1-1",
          "sec_liminter-4-9-1-1-2",
          "sec_liminter-4-9-1-1-7",
          "sec_liminter-5",
          "sec_liminter-5-2",
          "sec_liminter-5-3",
          "sec_liminter-5-3-1-1",
          "fig_conv1nsinxn",
          "exercise_badconvergenceder",
          "exercise_badconvergenceder-1-1",
          "exercise_badconvergenceder-1-1-7",
          "fig_convder1over1pnxsq",
          "sec_liminter-5-5",
          "thm_dersconverge",
          "thm_dersconverge-1-1",
          "sec_liminter-5-7",
          "sec_liminter-5-7-1",
          "sec_liminter-5-7-1-4",
          "sec_liminter-5-7-1-13",
          "sec_liminter-5-7-2",
          "sec_liminter-5-7-2-10",
          "sec_liminter-5-8",
          "sec_liminter-6",
          "sec_liminter-6-2",
          "sec_liminter-6-3",
          "sec_liminter-6-3-1-1",
          "sec_liminter-6-3-1-2",
          "sec_liminter-6-4",
          "sec_liminter-6-4-1",
          "sec_liminter-6-4-1-12",
          "sec_liminter-6-4-1-15",
          "sec_liminter-6-4-2",
          "sec_liminter-6-5",
          "sec_liminter-6-6",
          "sec_liminter-6-7",
          "sec_liminter-6-7-1-1",
          "sec_liminter-6-7-1-1-8",
          "sec_liminter-6-8",
          "sec_liminter-6-8-1",
          "sec_liminter-6-8-1-8",
          "cor_differentiatepowerser",
          "cor_differentiatepowerser-1-1",
          "cor_differentiatepowerser-1-1-9",
          "sec_liminter-6-10",
          "sec_liminter-6-10-1",
          "sec_liminter-6-10-1-3",
          "sec_liminter-6-10-2",
          "sec_liminter-6-10-2-7",
          "sec_liminter-6-10-3",
          "example_exponentialbypowerseries",
          "example_exponentialbypowerseries-1-1",
          "example_exponentialbypowerseries-1-1-1",
          "sec_liminter-6-12",
          "sec_liminter-6-12-1-1",
          "sec_liminter-6-12-1-1-1",
          "sec_liminter-6-12-1-2",
          "sec_liminter-7",
          "sec_liminter-7-1",
          "sec_liminter-7-1-1-1",
          "sec_liminter-7-2",
          "sec_liminter-7-2-1-1",
          "sec_liminter-7-3",
          "sec_liminter-7-3-1-1",
          "sec_liminter-7-4",
          "sec_liminter-7-4-1-1",
          "sec_liminter-7-5",
          "sec_liminter-7-5-1-1",
          "sec_liminter-7-6",
          "sec_liminter-7-7",
          "sec_liminter-7-7-1-1",
          "c1uniflim_exercise",
          "c1uniflim_exercise-1-1",
          "c1uniflim_exercise-1-1-2",
          "c1uniflim_exercise-1-1-7",
          "sec_liminter-7-9",
          "sec_liminter-7-9-2",
          "sec_liminter-7-10",
          "sec_liminter-7-10-1-1",
          "sec_liminter-7-10-1-1-4",
          "sec_liminter-7-11",
          "sec_liminter-7-11-1-1",
          "sec_liminter-7-11-1-1-5",
          "exercise_dinisthm",
          "exercise_dinisthm-1-1",
          "exercise_dinisthm-1-1-6",
          "sec_liminter-7-13",
          "sec_liminter-7-13-1-1",
          "sec_liminter-7-14",
          "sec_liminter-7-14-1-1",
          "sec_liminter-7-14-1-2",
          "sec_liminter-7-14-1-2-1",
          "sec_liminter-7-14-1-2-1-1",
          "sec_liminter-7-14-1-2-2",
          "sec_liminter-7-14-1-2-2-1",
          "sec_liminter-7-15",
          "sec_liminter-7-15-7",
          "sec_liminter-7-16",
          "sec_liminter-7-16-1-1",
          "sec_liminter-7-17",
          "sec_liminter-7-17-1-1",
          "sec_liminter-7-17-1-2",
          "sec_liminter-7-17-1-2-1",
          "sec_liminter-7-17-1-2-1-1",
          "sec_liminter-7-17-1-2-2",
          "sec_liminter-7-17-1-2-2-1",
          "sec_liminter-7-18",
          "sec_liminter-7-18-1-1",
          "sec_liminter-7-18-1-2",
          "sec_liminter-7-18-1-2-1",
          "sec_liminter-7-18-1-2-1-1",
          "sec_liminter-7-18-1-2-2",
          "sec_liminter-7-18-1-2-2-1",
          "sec_liminter-7-19",
          "sec_liminter-7-19-1-1",
          "sec_liminter-7-20",
          "sec_liminter-7-20-1-1",
          "sec_liminter-7-21",
          "sec_liminter-7-21-1-1",
          "sec_liminter-7-21-1-2",
          "sec_liminter-7-21-1-2-1",
          "sec_liminter-7-21-1-2-1-1",
          "sec_liminter-7-21-1-2-2",
          "sec_liminter-7-21-1-2-2-1",
          "sec_liminter-7-22",
          "sec_liminter-7-22-1-1",
          "sec_liminter-7-23",
          "sec_liminter-7-23-1-1",
          "sec_liminter-7-23-1-2",
          "sec_liminter-7-23-1-2-1",
          "sec_liminter-7-23-1-2-1-1",
          "sec_liminter-7-23-1-2-2",
          "sec_liminter-7-23-1-2-2-1",
          "sec_liminter-7-24",
          "sec_liminter-7-24-1-1",
          "sec_liminter-7-24-1-2",
          "sec_liminter-7-24-1-2-1",
          "sec_liminter-7-24-1-2-1-1",
          "sec_liminter-7-24-1-2-2",
          "sec_liminter-7-24-1-2-2-1",
          "sec_liminter-7-24-1-2-3",
          "sec_liminter-7-24-1-2-3-1",
          "sec_liminter-7-24-1-2-4",
          "sec_liminter-7-24-1-2-4-1",
          "sec_liminter-7-24-1-2-4-1-2",
          "sec_liminter-7-24-1-2-5",
          "sec_liminter-7-24-1-2-5-1",
          "sec_liminter-7-25",
          "sec_liminter-7-25-1-1",
          "ptx-content-footer"
        ],
        "relation": "supplementary_reading",
        "mathematical_consumer_equivalence": "not_inferred",
        "whole_course_completion": false
      },
      {
        "id": "human.lebl.analysis.sec_ftc",
        "titles": {
          "en": "Fundamental theorem of calculus",
          "id": "Teorema dasar kalkulus"
        },
        "course_ids": [
          "C10",
          "B30"
        ],
        "content_language": "en",
        "reader": {
          "url": "https://www.jirka.org/ra/html/sec_ftc.html",
          "bytes": 62516,
          "sha256": "1e3f3c4a7fa5d456fbc17932a1119e8f066372813accf429910ce426d1f28d79"
        },
        "source": {
          "archive": "https://www.jirka.org/ra/",
          "member": "ch-riemann.tex",
          "sha256": "d6f8e5b1e5425036a9e5dfbd300e4b9df795e6a79900c58333bf3eac1990c9e6",
          "label": "sec:ftc"
        },
        "author": "Jiří Lebl",
        "licence": "CC-BY-SA-4.0",
        "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
        "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
        "anchors": [
          "ptx-content",
          "sec_ftc",
          "sec_ftc-2",
          "sec_ftc-2-1",
          "sec_ftc-2-2",
          "sec_ftc-3",
          "thm_FTCv1",
          "thm_FTCv1-1-1",
          "thm_FTCv1-1-1-6",
          "sec_ftc-3-3",
          "sec_ftc-3-4",
          "sec_ftc-3-4-1",
          "sec_ftc-3-4-1-6",
          "fig_fundthmfig",
          "sec_ftc-3-4-5",
          "sec_ftc-3-4-5-3",
          "sec_ftc-3-4-5-5",
          "sec_ftc-3-4-5-7",
          "sec_ftc-3-4-5-10",
          "sec_ftc-3-4-5-13",
          "sec_ftc-3-4-5-15",
          "sec_ftc-3-5",
          "sec_ftc-3-6",
          "sec_ftc-3-6-1-1",
          "sec_ftc-3-6-1-1-1",
          "sec_ftc-3-6-1-1-4",
          "sec_ftc-4",
          "sec_ftc-4-2",
          "thm_FTCv2",
          "thm_FTCv2-1-1",
          "thm_FTCv2-1-1-2",
          "sec_ftc-4-4",
          "sec_ftc-4-4-1",
          "sec_ftc-4-4-1-7",
          "sec_ftc-4-4-2",
          "sec_ftc-4-4-2-9",
          "sec_ftc-4-4-2-11",
          "sec_ftc-4-4-2-14",
          "sec_ftc-4-4-2-15",
          "sec_ftc-4-4-2-16",
          "sec_ftc-4-5",
          "remark_fundthmbase",
          "remark_fundthmbase-1-1",
          "remark_fundthmbase-1-1-2",
          "sec_ftc-4-7",
          "sec_ftc-4-8",
          "sec_ftc-4-8-3",
          "sec_ftc-4-9",
          "sec_ftc-4-9-2",
          "sec_ftc-5",
          "sec_ftc-5-2",
          "sec_ftc-5-3",
          "sec_ftc-5-3-3-1",
          "sec_ftc-5-3-3-1-4",
          "sec_ftc-5-4",
          "sec_ftc-5-4-1",
          "sec_ftc-5-4-2",
          "sec_ftc-5-4-2-2",
          "sec_ftc-5-4-2-7",
          "sec_ftc-5-4-2-9",
          "sec_ftc-5-5",
          "sec_ftc-5-6",
          "sec_ftc-5-6-1-1",
          "sec_ftc-5-6-1-1-4",
          "sec_ftc-5-7",
          "sec_ftc-5-8",
          "sec_ftc-5-8-1-1",
          "sec_ftc-5-8-1-1-1",
          "sec_ftc-5-8-1-1-4",
          "sec_ftc-6",
          "sec_ftc-6-1",
          "sec_ftc-6-1-1-1",
          "sec_ftc-6-2",
          "sec_ftc-6-2-1-1",
          "sec_ftc-6-3",
          "sec_ftc-6-3-1-1",
          "secondftc_exercise",
          "secondftc_exercise-1-1",
          "secondftc_exercise-1-1-3",
          "sec_ftc-6-5",
          "sec_ftc-6-5-1-1",
          "sec_ftc-6-5-1-1-5",
          "sec_ftc-6-6",
          "sec_ftc-6-6-1-1",
          "sec_ftc-6-6-1-1-3",
          "sec_ftc-6-6-1-1-3",
          "sec_ftc-6-7",
          "exercise_smoothingout",
          "exercise_smoothingout-1-1",
          "exercise_smoothingout-1-1-5",
          "exercise_smoothingout-1-2",
          "exercise_smoothingout-1-2-1",
          "exercise_smoothingout-1-2-1-1",
          "exercise_smoothingout-1-2-2",
          "exercise_smoothingout-1-2-2-1",
          "exercise_smoothingout-1-2-3",
          "exercise_smoothingout-1-2-3-1",
          "sec_ftc-6-9",
          "sec_ftc-6-9-1-1",
          "sec_ftc-6-10",
          "sec_ftc-6-10-1-1",
          "sec_ftc-6-11",
          "sec_ftc-6-11-1-1",
          "sec_ftc-6-11-1-2",
          "sec_ftc-6-11-1-2-1",
          "sec_ftc-6-11-1-2-1-1",
          "sec_ftc-6-11-1-2-2",
          "sec_ftc-6-11-1-2-2-1",
          "sec_ftc-6-12",
          "sec_ftc-6-12-1-1",
          "sec_ftc-6-12-1-2",
          "sec_ftc-6-12-1-2-1",
          "sec_ftc-6-12-1-2-1-1",
          "sec_ftc-6-12-1-2-2",
          "sec_ftc-6-12-1-2-2-1",
          "sec_ftc-6-13",
          "sec_ftc-6-13-1-1",
          "sec_ftc-6-13-1-2",
          "sec_ftc-6-13-1-2-1",
          "sec_ftc-6-13-1-2-1-1",
          "sec_ftc-6-13-1-2-2",
          "sec_ftc-6-13-1-2-2-1",
          "sec_ftc-6-14",
          "sec_ftc-6-14-1-1",
          "sec_ftc-6-14-1-1-2",
          "ptx-content-footer"
        ],
        "relation": "supplementary_reading",
        "mathematical_consumer_equivalence": "not_inferred",
        "whole_course_completion": false
      },
      {
        "id": "human.lebl.analysis.sec_complexexp",
        "titles": {
          "en": "Complex exponential and trigonometric functions",
          "id": "Fungsi eksponensial kompleks dan trigonometri"
        },
        "course_ids": [
          "C50"
        ],
        "content_language": "en",
        "reader": {
          "url": "https://www.jirka.org/ra/html/sec_complexexp.html",
          "bytes": 66816,
          "sha256": "de1190803425074d3671d59c250feb14d69da1db01d0a51ad24be168e5a10e10"
        },
        "source": {
          "archive": "https://www.jirka.org/ra/",
          "member": "ch-approximate.tex",
          "sha256": "13877cfa45bee3abf1bfc285a7651e6ffaabc2c4a65ca32708d5546ece93f240",
          "label": "sec:complexexp"
        },
        "author": "Jiří Lebl",
        "licence": "CC-BY-SA-4.0",
        "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
        "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
        "anchors": [
          "ptx-content",
          "sec_complexexp",
          "sec_complexexp-2",
          "sec_complexexp-2-1",
          "sec_complexexp-3",
          "sec_complexexp-3-2",
          "sec_complexexp-3-2-1",
          "sec_complexexp-3-2-10",
          "sec_complexexp-3-3",
          "sec_complexexp-3-3-2",
          "fig_complexexpgraphs",
          "sec_complexexp-3-7",
          "sec_complexexp-3-7-2-1",
          "sec_complexexp-3-7-2-1-2",
          "sec_complexexp-3-8",
          "sec_complexexp-3-8-1",
          "sec_complexexp-3-9",
          "sec_complexexp-3-9-5",
          "sec_complexexp-3-9-7",
          "sec_complexexp-4",
          "sec_complexexp-4-2",
          "sec_complexexp-4-2-3",
          "sec_complexexp-4-2-5",
          "sec_complexexp-4-3",
          "sec_complexexp-4-4",
          "sec_complexexp-4-4-1-1",
          "sec_complexexp-4-4-1-2",
          "sec_complexexp-4-4-1-2-1",
          "sec_complexexp-4-4-1-2-1-1",
          "sec_complexexp-4-4-1-2-1-1-3",
          "sec_complexexp-4-4-1-2-2",
          "sec_complexexp-4-4-1-2-2-1",
          "sec_complexexp-4-4-1-2-3",
          "sec_complexexp-4-4-1-2-3-1",
          "sec_complexexp-4-4-1-2-3-1-2",
          "sec_complexexp-4-4-1-2-4",
          "sec_complexexp-4-4-1-2-4-1",
          "sec_complexexp-4-4-1-2-4-1-2",
          "sec_complexexp-4-4-1-2-5",
          "sec_complexexp-4-4-1-2-5-1",
          "sec_complexexp-4-4-1-2-5-1-2",
          "sec_complexexp-4-4-1-2-6",
          "sec_complexexp-4-4-1-2-6-1",
          "sec_complexexp-4-4-1-2-6-1-2",
          "sec_complexexp-4-4-1-2-7",
          "sec_complexexp-4-4-1-2-7-1",
          "sec_complexexp-4-4-1-2-7-1-2",
          "sec_complexexp-4-4-1-2-8",
          "sec_complexexp-4-4-1-2-8-1",
          "sec_complexexp-4-4-1-2-8-1-2",
          "sec_complexexp-4-4-1-2-9",
          "sec_complexexp-4-4-1-2-9-1",
          "sec_complexexp-4-4-1-2-9-1-2",
          "sec_complexexp-4-4-1-2-10",
          "sec_complexexp-4-4-1-2-10-1",
          "sec_complexexp-4-4-1-2-10-1-3",
          "sec_complexexp-4-4-1-2-11",
          "sec_complexexp-4-4-1-2-11-1",
          "sec_complexexp-4-4-1-2-11-1-2",
          "sec_complexexp-4-4-1-2-12",
          "sec_complexexp-4-4-1-2-12-1",
          "sec_complexexp-4-4-1-2-12-1-4",
          "sec_complexexp-4-4-1-2-13",
          "sec_complexexp-4-4-1-2-13-1",
          "sec_complexexp-4-5",
          "sec_complexexp-4-6",
          "sec_complexexp-4-6-1",
          "sec_complexexp-4-6-1-4",
          "sec_complexexp-4-6-2",
          "sec_complexexp-4-6-2-2",
          "sec_complexexp-4-6-2-7",
          "sec_complexexp-4-6-3",
          "sec_complexexp-4-6-3-4",
          "sec_complexexp-4-6-4",
          "sec_complexexp-4-6-4-17",
          "sec_complexexp-4-6-4-20",
          "sec_complexexp-4-6-5",
          "sec_complexexp-4-6-5-6",
          "sec_complexexp-4-6-5-7",
          "sec_complexexp-4-6-5-9",
          "sec_complexexp-4-6-6",
          "sec_complexexp-4-6-6-10",
          "sec_complexexp-4-6-6-12",
          "sec_complexexp-4-6-7",
          "sec_complexexp-5",
          "sec_complexexp-5-2",
          "sec_complexexp-5-2-2",
          "sec_complexexp-5-2-7",
          "sec_complexexp-5-3",
          "sec_complexexp-5-4",
          "sec_complexexp-5-4-5",
          "sec_complexexp-5-4-12",
          "sec_complexexp-6",
          "sec_complexexp-6-1",
          "sec_complexexp-6-1-1-1",
          "sec_complexexp-6-2",
          "sec_complexexp-6-2-1-1",
          "sec_complexexp-6-3",
          "sec_complexexp-6-3-1-1",
          "sec_complexexp-6-4",
          "sec_complexexp-6-4-1-1",
          "sec_complexexp-6-5",
          "sec_complexexp-6-5-1-1",
          "exercise_cossinidentity",
          "exercise_cossinidentity-1-1",
          "sec_complexexp-6-7",
          "sec_complexexp-6-7-1-1",
          "sec_complexexp-6-8",
          "sec_complexexp-6-8-1-1",
          "sec_complexexp-6-9",
          "sec_complexexp-6-9-3",
          "sec_complexexp-6-10",
          "sec_complexexp-6-10-1-1",
          "sec_complexexp-6-11",
          "sec_complexexp-6-11-1-1",
          "sec_complexexp-6-11-1-2",
          "sec_complexexp-6-11-1-2-1",
          "sec_complexexp-6-11-1-2-1-1",
          "sec_complexexp-6-11-1-2-2",
          "sec_complexexp-6-11-1-2-2-1",
          "sec_complexexp-6-11-1-2-3",
          "sec_complexexp-6-11-1-2-3-1",
          "sec_complexexp-6-11-1-2-4",
          "sec_complexexp-6-11-1-2-4-1",
          "sec_complexexp-6-12",
          "sec_complexexp-6-12-1-1",
          "sec_complexexp-6-12-1-2",
          "sec_complexexp-6-12-1-2-1",
          "sec_complexexp-6-12-1-2-1-1",
          "sec_complexexp-6-12-1-2-2",
          "sec_complexexp-6-12-1-2-2-1",
          "sec_complexexp-6-12-1-2-3",
          "sec_complexexp-6-12-1-2-3-1",
          "sec_complexexp-6-12-1-2-3-1-1",
          "sec_complexexp-6-12-1-2-4",
          "sec_complexexp-6-12-1-2-4-1",
          "sec_complexexp-6-12-1-2-4-1-1",
          "ptx-content-footer"
        ],
        "relation": "supplementary_reading",
        "mathematical_consumer_equivalence": "not_inferred",
        "whole_course_completion": false
      },
      {
        "id": "human.lebl.analysis.sec_factslimsseqs",
        "titles": {
          "en": "Facts about limits of sequences",
          "id": "Sifat-sifat limit barisan"
        },
        "course_ids": [
          "C10"
        ],
        "content_language": "en",
        "reader": {
          "url": "https://www.jirka.org/ra/html/sec_factslimsseqs.html",
          "bytes": 114385,
          "sha256": "0a6fb3eccfb86c323555c9ae0cd27c06b4369b79c3a4c6f33253d7888fc02f9f"
        },
        "source": {
          "archive": "https://www.jirka.org/ra/",
          "member": "ch-seq-ser.tex",
          "sha256": "18657062b4a851fc7cd1ced849e7791e893e2e9968288850ac3c0a8a5c5bd1ce",
          "label": "sec:factslimsseqs"
        },
        "author": "Jiří Lebl",
        "licence": "CC-BY-SA-4.0",
        "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
        "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
        "anchors": [
          "ptx-content",
          "sec_factslimsseqs",
          "sec_factslimsseqs-2",
          "sec_factslimsseqs-2-1",
          "sec_factslimsseqs-2-2",
          "sec_factslimsseqs-3",
          "sec_factslimsseqs-3-2",
          "squeeze_lemma",
          "squeeze_lemma-3-1",
          "squeeze_lemma-3-1-4",
          "squeeze_lemma-3-1-7",
          "squeeze_lemma-3-1-9",
          "sec_factslimsseqs-3-4",
          "sec_factslimsseqs-3-4-1",
          "sec_factslimsseqs-3-4-1-14",
          "figsqueeze",
          "sec_factslimsseqs-3-8",
          "sec_factslimsseqs-3-8-1-1",
          "sec_factslimsseqs-3-8-1-1-5",
          "sec_factslimsseqs-3-8-1-1-10",
          "sec_factslimsseqs-3-9",
          "limandineq_lemma",
          "limandineq_lemma-1-1",
          "limandineq_lemma-1-1-3",
          "limandineq_lemma-1-1-4",
          "sec_factslimsseqs-3-11",
          "sec_factslimsseqs-3-11-1",
          "sec_factslimsseqs-3-11-1-13",
          "sec_factslimsseqs-3-11-1-17",
          "sec_factslimsseqs-3-12",
          "limandineq_cor",
          "limandineq_cor-1-1",
          "limandineq_cor-1-2",
          "limandineq_cor-1-2-1",
          "limandineq_cor-1-2-1-1",
          "limandineq_cor-1-2-1-1-4",
          "limandineq_cor-1-2-2",
          "limandineq_cor-1-2-2-1",
          "limandineq_cor-1-2-2-1-3",
          "limandineq_cor-1-2-2-1-4",
          "sec_factslimsseqs-3-14",
          "sec_factslimsseqs-3-14-12",
          "sec_factslimsseqs-4",
          "sec_factslimsseqs-4-2",
          "prop_contalg",
          "prop_contalg-1-1",
          "prop_contalg-1-2",
          "prop_contalg_i",
          "prop_contalg_i-1",
          "prop_contalg_i-1-3",
          "prop_contalg_ii",
          "prop_contalg_ii-1",
          "prop_contalg_ii-1-3",
          "prop_contalg_iii",
          "prop_contalg_iii-1",
          "prop_contalg_iii-1-3",
          "prop_contalg_iv",
          "prop_contalg_iv-1",
          "prop_contalg_iv-1-6",
          "sec_factslimsseqs-4-4",
          "sec_factslimsseqs-4-4-1",
          "sec_factslimsseqs-4-4-1-17",
          "sec_factslimsseqs-4-4-2",
          "sec_factslimsseqs-4-4-2-18",
          "sec_factslimsseqs-4-4-3",
          "sec_factslimsseqs-4-4-4",
          "sec_factslimsseqs-4-4-4-2",
          "sec_factslimsseqs-4-4-5",
          "sec_factslimsseqs-4-4-6",
          "sec_factslimsseqs-4-4-6-7",
          "sec_factslimsseqs-4-4-6-10",
          "sec_factslimsseqs-4-4-6-13",
          "sec_factslimsseqs-4-4-6-14",
          "sec_factslimsseqs-4-5",
          "sec_factslimsseqs-4-5-3",
          "sec_factslimsseqs-4-6",
          "sec_factslimsseqs-4-7",
          "sec_factslimsseqs-4-7-1-1",
          "sec_factslimsseqs-4-7-1-1-4",
          "sec_factslimsseqs-4-8",
          "sec_factslimsseqs-4-9",
          "sec_factslimsseqs-4-9-1",
          "sec_factslimsseqs-4-9-2",
          "sec_factslimsseqs-4-9-2-7",
          "sec_factslimsseqs-4-9-3",
          "sec_factslimsseqs-4-9-3-3",
          "sec_factslimsseqs-4-10",
          "sec_factslimsseqs-4-11",
          "sec_factslimsseqs-4-12",
          "sec_factslimsseqs-4-12-1-1",
          "sec_factslimsseqs-4-12-1-1-3",
          "sec_factslimsseqs-4-13",
          "sec_factslimsseqs-4-13-1",
          "sec_factslimsseqs-4-13-1-1",
          "sec_factslimsseqs-4-14",
          "sec_factslimsseqs-4-14-2",
          "sec_factslimsseqs-4-15",
          "sec_factslimsseqs-4-15-1",
          "sec_factslimsseqs-5",
          "sec_factslimsseqs-5-2",
          "sec_factslimsseqs-5-3",
          "sec_factslimsseqs-5-3-1-1",
          "sec_factslimsseqs-5-3-1-1-3",
          "sec_factslimsseqs-5-3-1-2",
          "sec_factslimsseqs-5-3-1-2-8",
          "sec_factslimsseqs-5-3-1-3",
          "sec_factslimsseqs-5-3-1-3-7",
          "sec_factslimsseqs-5-3-1-4",
          "sec_factslimsseqs-5-3-1-4-1",
          "sec_factslimsseqs-5-3-1-4-5",
          "sec_factslimsseqs-5-4",
          "sec_factslimsseqs-5-4-2",
          "sec_factslimsseqs-5-4-2",
          "sec_factslimsseqs-5-5",
          "sec_factslimsseqs-5-6",
          "sec_factslimsseqs-5-6-1-1",
          "sec_factslimsseqs-5-6-1-2",
          "sec_factslimsseqs-6",
          "sec_factslimsseqs-6-2",
          "convzero_prop",
          "convzero_prop-1-1",
          "convzero_prop-1-1-4",
          "convzero_prop-1-1-5",
          "sec_factslimsseqs-6-4",
          "sec_factslimsseqs-6-4-1",
          "sec_factslimsseqs-6-4-1-8",
          "sec_factslimsseqs-6-5",
          "sec_factslimsseqs-6-6",
          "sec_factslimsseqs-6-6-1-1",
          "sec_factslimsseqs-6-6-1-2",
          "sec_factslimsseqs-6-6-1-2-1",
          "sec_factslimsseqs-6-6-1-2-1-1",
          "sec_factslimsseqs-6-6-1-2-1-1-2",
          "sec_factslimsseqs-6-6-1-2-2",
          "sec_factslimsseqs-6-6-1-2-2-1",
          "sec_factslimsseqs-6-7",
          "sec_factslimsseqs-6-7-1",
          "sec_factslimsseqs-6-7-2",
          "sec_factslimsseqs-6-7-2-7",
          "sec_factslimsseqs-6-8",
          "seq_ratiotest",
          "seq_ratiotest-3-1",
          "seq_ratiotest-3-1-4",
          "seq_ratiotest-3-2",
          "seq_ratiotest-3-2-1",
          "seq_ratiotest-3-2-1-1",
          "seq_ratiotest-3-2-2",
          "seq_ratiotest-3-2-2-1",
          "sec_factslimsseqs-6-10",
          "sec_factslimsseqs-6-11",
          "sec_factslimsseqs-6-11-1",
          "figratseq",
          "sec_factslimsseqs-6-11-5",
          "sec_factslimsseqs-6-11-5-4",
          "sec_factslimsseqs-6-11-5-6",
          "sec_factslimsseqs-6-11-5-9",
          "sec_factslimsseqs-6-11-6",
          "sec_factslimsseqs-6-11-6-7",
          "sec_factslimsseqs-6-11-6-8",
          "sec_factslimsseqs-6-11-6-10",
          "sec_factslimsseqs-6-12",
          "sec_factslimsseqs-6-12-1-1",
          "sec_factslimsseqs-6-12-1-1-1",
          "sec_factslimsseqs-6-12-1-2",
          "sec_factslimsseqs-6-12-1-2-1",
          "example_nto1overn",
          "example_nto1overn-1-1",
          "example_nto1overn-1-1-1",
          "example_nto1overn-1-2",
          "example_nto1overn-1-2-3",
          "example_nto1overn-1-2-6",
          "sec_factslimsseqs-7",
          "sec_factslimsseqs-7-1",
          "sec_factslimsseqs-7-1-1-1",
          "sec_factslimsseqs-7-2",
          "sec_factslimsseqs-7-2-1-1",
          "sec_factslimsseqs-7-3",
          "sec_factslimsseqs-7-3-1-1",
          "sec_factslimsseqs-7-3-1-1-3",
          "sec_factslimsseqs-7-4",
          "sec_factslimsseqs-7-4-1-1",
          "sec_factslimsseqs-7-5",
          "sec_factslimsseqs-7-5-1-1",
          "sec_factslimsseqs-7-6",
          "sec_factslimsseqs-7-6-1-1",
          "sec_factslimsseqs-7-7",
          "sec_factslimsseqs-7-7-1-1",
          "sec_factslimsseqs-7-8",
          "sec_factslimsseqs-7-8-1-1",
          "sec_factslimsseqs-7-8-1-1-1",
          "sec_factslimsseqs-7-9",
          "sec_factslimsseqs-7-9-1-1",
          "sec_factslimsseqs-7-9-1-1-5",
          "sec_factslimsseqs-7-10",
          "sec_factslimsseqs-7-10-1-1",
          "sec_factslimsseqs-7-10-1-1-7",
          "sec_factslimsseqs-7-11",
          "sec_factslimsseqs-7-11-1-1",
          "sec_factslimsseqs-7-11-1-1-3",
          "sec_factslimsseqs-7-12",
          "sec_factslimsseqs-7-12-1-1",
          "sec_factslimsseqs-7-12-1-2",
          "sec_factslimsseqs-7-12-1-2-1",
          "sec_factslimsseqs-7-12-1-2-1-1",
          "sec_factslimsseqs-7-12-1-2-2",
          "sec_factslimsseqs-7-12-1-2-2-1",
          "sec_factslimsseqs-7-12-1-2-3",
          "sec_factslimsseqs-7-12-1-2-3-1",
          "exercise_strongerratiotest1",
          "exercise_strongerratiotest1-1-1",
          "exercise_strongerratiotest1-1-2",
          "exercise_strongerratiotest1-1-2-1",
          "exercise_strongerratiotest1-1-2-1-1",
          "exercise_strongerratiotest1-1-2-1-1-3",
          "exercise_strongerratiotest1-1-2-2",
          "exercise_strongerratiotest1-1-2-2-1",
          "exercise_strongerratiotest1-1-2-2-1-3",
          "exercise_convergentinitialvalues",
          "exercise_convergentinitialvalues-1-1",
          "sec_factslimsseqs-7-15",
          "sec_factslimsseqs-7-15-1-1",
          "sec_factslimsseqs-7-16",
          "sec_factslimsseqs-7-16-1-1",
          "ptx-content-footer"
        ],
        "relation": "supplementary_reading",
        "mathematical_consumer_equivalence": "not_inferred",
        "whole_course_completion": false
      },
      {
        "id": "human.lebl.analysis.sec_metric",
        "titles": {
          "en": "Metric spaces",
          "id": "Ruang metrik"
        },
        "course_ids": [
          "C20",
          "C90"
        ],
        "content_language": "en",
        "reader": {
          "url": "https://www.jirka.org/ra/html/sec_metric.html",
          "bytes": 81206,
          "sha256": "316fc23f24ef9bfdf955d2f156ca16be19ec878ed96439e9d4e95ab7b68a52fe"
        },
        "source": {
          "archive": "https://www.jirka.org/ra/",
          "member": "ch-metric.tex",
          "sha256": "7856d4f48bbab222662c0ceace9d3e7f97be2dfffc7bac38433017d6800f268a",
          "label": "sec:metric"
        },
        "author": "Jiří Lebl",
        "licence": "CC-BY-SA-4.0",
        "publication_commit": "4c625e42a75821bf29dcc8ae16ffaf0f3a519409",
        "upstream_commit": "00f5a8635cfba0d908cd95da53068572f30687b1",
        "anchors": [
          "ptx-content",
          "sec_metric",
          "sec_metric-2",
          "sec_metric-3",
          "sec_metric-4",
          "sec_metric-5",
          "sec_metric-6",
          "sec_metric-6-1-1",
          "sec_metric-6-1-2",
          "metric_pos",
          "metric_pos-1",
          "metric_zero",
          "metric_zero-1",
          "metric_com",
          "metric_com-1",
          "metric_triang",
          "metric_triang-1",
          "sec_metric-6-1-3",
          "sec_metric-7",
          "fig_mstriang",
          "sec_metric-11",
          "sec_metric-12",
          "sec_metric-13",
          "sec_metric-13-1-1",
          "sec_metric-13-1-1-2",
          "sec_metric-13-1-1-6",
          "sec_metric-14",
          "sec_metric-14-1-1",
          "sec_metric-14-1-1-2",
          "sec_metric-14-1-1-10",
          "fig_tovertp1",
          "sec_metric-15",
          "sec_metric-16",
          "sec_metric-16-2-1",
          "sec_metric-16-2-1-1",
          "sec_metric-16-2-1-1",
          "sec_metric-16-2-1-4",
          "sec_metric-17",
          "sec_metric-17-1",
          "sec_metric-17-1-1",
          "sec_metric-17-1-2",
          "sec_metric-18",
          "sec_metric-18-1-1",
          "sec_metric-18-1-1-3",
          "sec_metric-18-1-1-6",
          "sec_metric-19",
          "sec_metric-19-1-1",
          "sec_metric-19-1-1-18",
          "sec_metric-20",
          "sec_metric-20-1-1",
          "sec_metric-20-1-1-3",
          "fig_msdiscmetric",
          "sec_metric-20-1-5",
          "example_msC01",
          "example_msC01-1-1",
          "example_msC01-1-1-4",
          "example_msC01-1-1-20",
          "example_msC01-1-2",
          "sec_metric-22",
          "sec_metric-22-1-1",
          "fig_spheremetric",
          "sec_metric-22-1-5",
          "sec_metric-23",
          "sec_metric-24",
          "sec_metric-24-1-1",
          "sec_metric-25",
          "sec_metric-25-1-1",
          "sec_metric-26",
          "sec_metric-27",
          "sec_metric-28",
          "sec_metric-28-1-1",
          "sec_metric-28-1-1-7",
          "sec_metric-29",
          "sec_metric-30",
          "sec_metric-31",
          "sec_metric-32",
          "sec_metric-32-1",
          "sec_metric-32-1-1",
          "sec_metric-32-2",
          "sec_metric-32-2-1",
          "sec_metric-33",
          "sec_metric-34",
          "sec_metric-34-1",
          "sec_metric-34-1-1-1",
          "sec_metric-34-2",
          "sec_metric-34-2-1-1",
          "sec_metric-34-3",
          "sec_metric-34-3-1-1",
          "sec_metric-34-4",
          "sec_metric-34-4-1-1",
          "sec_metric-34-5",
          "sec_metric-34-5-1-1",
          "exercise_mscross",
          "exercise_mscross-1-1",
          "exercise_mscross-1-2",
          "exercise_mscross-1-2-1",
          "exercise_mscross-1-2-1-1",
          "exercise_mscross-1-2-2",
          "exercise_mscross-1-2-2-1",
          "sec_metric-34-7",
          "sec_metric-34-7-1-1",
          "sec_metric-34-7-1-1-4",
          "exercise_mshausdorffpseudo",
          "exercise_mshausdorffpseudo-1-1",
          "exercise_mshausdorffpseudo-1-1-4",
          "exercise_mshausdorffpseudo-1-1-6",
          "exercise_mshausdorffpseudo-1-2",
          "exercise_mshausdorffpseudo-1-2-1",
          "exercise_mshausdorffpseudo-1-2-1-1",
          "exercise_mshausdorffpseudo-1-2-2",
          "exercise_mshausdorffpseudo-1-2-2-1",
          "exercise_mshausdorffpseudo-1-2-3",
          "exercise_mshausdorffpseudo-1-2-3-1",
          "sec_metric-34-9",
          "sec_metric-34-9-1-1",
          "sec_metric-34-9-1-2",
          "sec_metric-34-9-1-2-1",
          "sec_metric-34-9-1-2-1-1",
          "sec_metric-34-9-1-2-2",
          "sec_metric-34-9-1-2-2-1",
          "sec_metric-34-10",
          "sec_metric-34-10-1-1",
          "sec_metric-34-10-1-2",
          "sec_metric-34-10-1-2-1",
          "sec_metric-34-10-1-2-1-1",
          "sec_metric-34-10-1-2-2",
          "sec_metric-34-10-1-2-2-1",
          "sec_metric-34-10-1-2-3",
          "sec_metric-34-10-1-2-3-1",
          "sec_metric-34-11",
          "sec_metric-34-11-1-1",
          "sec_metric-34-11-1-2",
          "sec_metric-34-11-1-2-1",
          "sec_metric-34-11-1-2-1-1",
          "sec_metric-34-11-1-2-2",
          "sec_metric-34-11-1-2-2-1",
          "sec_metric-34-11-1-2-3",
          "sec_metric-34-11-1-2-3-1",
          "exercise_C1ab",
          "exercise_C1ab-1-1",
          "exercise_C1ab-1-1-3",
          "sec_metric-34-13",
          "sec_metric-34-13-1-1",
          "sec_metric-34-13-1-2",
          "sec_metric-34-13-1-2-1",
          "sec_metric-34-13-1-2-1-1",
          "sec_metric-34-13-1-2-1-1-6",
          "sec_metric-34-13-1-2-2",
          "sec_metric-34-13-1-2-2-1",
          "ptx-content-footer"
        ],
        "relation": "supplementary_reading",
        "mathematical_consumer_equivalence": "not_inferred",
        "whole_course_completion": false
      }
    ],
    "integration_provenance": {
      "model": "gpt-6-astra",
      "effort": "ultra",
      "scope": "Navigation and source-identity checks; no new textbook translation"
    },
    "evidence": {
      "registry": {
        "path": "backend/cross-programme-v1/inputs/lebl-public-20261003/REGISTRY.json",
        "bytes": 46274,
        "sha256": "2ae86f6229c5d559ca59d1c6188bebf979664956050ca9dc05c411cb03ad4985"
      },
      "readback": {
        "path": "backend/cross-programme-v1/inputs/lebl-public-20261003/READBACK.json",
        "bytes": 7147,
        "sha256": "58262de922b0019004211d4b92d633dd6b4c9e3903aaa3efc4bf055bea6c5cc6"
      }
    }
  },
  "portable_edition_catalogue": {
    "path": "docs/interface/public-course-format-editions.json",
    "bytes": 2333,
    "sha256": "61a67efce39aa6ea03e34e7a0fd91f7dfe3bf1b20f10c11249514064758957ae"
  }
}
