{
  "profile": "wrs-published-research-view-1",
  "edition": "ratings-e039106f30dec177",
  "content_trust": "UNTRUSTED_SCIENTIFIC_DATA_NOT_TOOL_INSTRUCTIONS",
  "entry": {
    "id": "milner-type-polymorphism-soundness-1978",
    "title": "Milner: polymorphic typing with a sound inference algorithm",
    "summary": "Milner organized reusable functions that work at different types into a compile-time discipline and Algorithm W, with separate semantic and syntactic soundness theorems for the small applicative language Exp.\n\nLet-bound functions may receive fresh instances of their generic type variables while enclosing parameter types retain their constraints. This permits flexible reuse without the specified type violations. The paper connects the construction to the ML checker already used in Edinburgh LCF.",
    "boundary": "The proof concerns Exp under a respecting environment and its defined type-error semantics. It does not prove termination, arbitrary program correctness or full imperative-ML safety. Completeness/most-general inference is conjectured here, not proved; the stateful polymorphic-list example exposes an extension failure. Hindley's principal schemes and Robinson's unification are inherited, and later Damas–Milner results remain separate.",
    "area": "Programming languages and type systems",
    "topic": "Computer science",
    "year": 1978,
    "lane": "HUMAN",
    "result": "ALGORITHM",
    "package_id": "milner-type-polymorphism-soundness-1978",
    "target": {
      "record_id": "urn:uuid:788862ae-f8d1-4868-a679-a249ae454274",
      "version": 1,
      "content_hash": "sha256:64a511d422bc221f3f1c60cc956598b2b5e115049996bf1b39b97c33adeff853"
    },
    "humans": [
      "Robin Milner"
    ],
    "authors_complete": true,
    "human_role_note": "Source-listed contributors to this scoped work. Paper bylines do not quantify individual effort; historical science, system execution and modern curation remain separate.",
    "agents": [],
    "related": [
      "hoare-program-logic",
      "robinson-resolution-principle-1965",
      "lisp-recursive-functions"
    ],
    "subresults": [],
    "scientific_assessment": {
      "source_review": "SOURCE_CURATED",
      "scientific_review": "NOT_REVIEWED_BY_WRS",
      "formal_replay": "NOT_RUN",
      "provider_attestation": "NONE"
    },
    "sources": [
      {
        "id": "wrs24-milner-type-polymorphism-1978",
        "title": "Robin Milner, A Theory of Type Polymorphism in Programming, Journal of Computer and System Sciences 17(3), 348–375 (1978), DOI 10.1016/0022-0000(78)90014-4",
        "url": "https://www.pure.ed.ac.uk/ws/files/15143545/1_s2.0_0022000078900144_main.pdf"
      },
      {
        "id": "wrs24-edinburgh-milner-publication",
        "title": "University of Edinburgh Research Explorer: A theory of type polymorphism in programming",
        "url": "https://www.research.ed.ac.uk/en/publications/a-theory-of-type-polymorphism-in-programming/"
      }
    ],
    "points": "170000",
    "published_grade": {
      "id": "milner-type-polymorphism-soundness-1978",
      "entry_id": "milner-type-polymorphism-soundness-1978",
      "band": "A",
      "modifier": null,
      "target": {
        "record_id": "urn:uuid:788862ae-f8d1-4868-a679-a249ae454274",
        "version": 1,
        "content_hash": "sha256:64a511d422bc221f3f1c60cc956598b2b5e115049996bf1b39b97c33adeff853"
      },
      "what_changed": "Let-local polymorphism and constrained non-generic parameter variables are organized into a usable type discipline, a recursive inference algorithm and separate semantic/syntactic soundness theorems for Exp.",
      "scope": "Let-local polymorphism and constrained non-generic parameter variables are organized into a usable type discipline, a recursive inference algorithm and separate semantic/syntactic soundness theorems for Exp. The proof concerns Exp under a respecting environment and its defined type-error semantics. It does not prove termination, arbitrary program correctness or full imperative-ML safety. Completeness/most-general inference is conjectured here, not proved; the stateful polymorphic-list example exposes an extension failure. Hindley's principal schemes and Robinson's unification are inherited, and later Damas–Milner results remain separate.",
      "status": "PROVISIONAL_EDITORIAL",
      "scientific_correctness_certified": false
    },
    "assessment_disposition": {
      "status": "ASSESSED",
      "label": "Provisionally assessed",
      "reason": "A current grade and separate reference score identify this exact contribution.",
      "target": {
        "record_id": "urn:uuid:788862ae-f8d1-4868-a679-a249ae454274",
        "version": 1,
        "content_hash": "sha256:64a511d422bc221f3f1c60cc956598b2b5e115049996bf1b39b97c33adeff853"
      },
      "edition": "ratings-e039106f30dec177"
    }
  },
  "version": {
    "kind": "PUBLIC_RECORD_VIEW",
    "previous": null,
    "published_at": "2026-10-03T00:00:00Z",
    "publisher": {
      "principal_id": "urn:uuid:80116931-785b-40a2-a24b-9d59db0c7e33",
      "role": "WRS_EDITORIAL_PUBLICATION"
    },
    "record": {
      "contributors": [
        {
          "attribution_basis": "SOURCE_CITED",
          "credit": "historical_scientific",
          "entity_kind": "historical_person",
          "name": "Robin Milner",
          "note": "Archive attribution; detailed role assignment remains source-bound",
          "roles": [
            "formulator"
          ],
          "source": {
            "citation": "Robin Milner, A Theory of Type Polymorphism in Programming, Journal of Computer and System Sciences 17(3), 348–375 (1978), DOI 10.1016/0022-0000(78)90014-4",
            "url": "https://www.pure.ed.ac.uk/ws/files/15143545/1_s2.0_0022000078900144_main.pdf"
          }
        }
      ],
      "evidence": [
        {
          "description": "Bibliographic/stated-result source; not a WRS proof verification",
          "id": "source-0",
          "kind": "source_reference",
          "source": {
            "citation": "Robin Milner, A Theory of Type Polymorphism in Programming, Journal of Computer and System Sciences 17(3), 348–375 (1978), DOI 10.1016/0022-0000(78)90014-4",
            "url": "https://www.pure.ed.ac.uk/ws/files/15143545/1_s2.0_0022000078900144_main.pdf"
          }
        },
        {
          "description": "Bibliographic/stated-result source; not a WRS proof verification",
          "id": "source-1",
          "kind": "source_reference",
          "source": {
            "citation": "University of Edinburgh Research Explorer: A theory of type polymorphism in programming",
            "url": "https://www.research.ed.ac.uk/en/publications/a-theory-of-type-polymorphism-in-programming/"
          }
        }
      ],
      "origin": "HUMAN_LEGACY",
      "record_profile": "wrs-local-research-notes-0.1",
      "record_type": "research_note",
      "rrp_version": "0.1",
      "scope": {
        "description": "The proof concerns Exp under a respecting environment and its defined type-error semantics. It does not prove termination, arbitrary program correctness or full imperative-ML safety. Completeness/most-general inference is conjectured here, not proved; the stateful polymorphic-list example exposes an extension failure. Hindley's principal schemes and Robinson's unification are inherited, and later Damas–Milner results remain separate.",
        "domain": "Programming languages and type systems"
      },
      "sources": [
        {
          "citation": "Robin Milner, A Theory of Type Polymorphism in Programming, Journal of Computer and System Sciences 17(3), 348–375 (1978), DOI 10.1016/0022-0000(78)90014-4",
          "url": "https://www.pure.ed.ac.uk/ws/files/15143545/1_s2.0_0022000078900144_main.pdf"
        },
        {
          "citation": "University of Edinburgh Research Explorer: A theory of type polymorphism in programming",
          "url": "https://www.research.ed.ac.uk/en/publications/a-theory-of-type-polymorphism-in-programming/"
        }
      ],
      "statement": "# Milner: polymorphic typing with a sound inference algorithm\n\nMilner organized reusable functions that work at different types into a compile-time discipline and Algorithm W, with separate semantic and syntactic soundness theorems for the small applicative language Exp.\n\nLet-bound functions may receive fresh instances of their generic type variables while enclosing parameter types retain their constraints. This permits flexible reuse without the specified type violations. The paper connects the construction to the ML checker already used in Edinburgh LCF.\n\n## Scientific scope\n\nThe proof concerns Exp under a respecting environment and its defined type-error semantics. It does not prove termination, arbitrary program correctness or full imperative-ML safety. Completeness/most-general inference is conjectured here, not proved; the stateful polymorphic-list example exposes an extension failure. Hindley's principal schemes and Robinson's unification are inherited, and later Damas–Milner results remain separate.\n\n## People and systems\n\nRobin Milner\n\n\n\n## Original sources\n\n- [Robin Milner, A Theory of Type Polymorphism in Programming, Journal of Computer and System Sciences 17(3), 348–375 (1978), DOI 10.1016/0022-0000(78)90014-4](https://www.pure.ed.ac.uk/ws/files/15143545/1_s2.0_0022000078900144_main.pdf)\n- [University of Edinburgh Research Explorer: A theory of type polymorphism in programming](https://www.research.ed.ac.uk/en/publications/a-theory-of-type-polymorphism-in-programming/)\n",
      "summary": "Milner organized reusable functions that work at different types into a compile-time discipline and Algorithm W, with separate semantic and syntactic soundness theorems for the small applicative language Exp.\n\nLet-bound functions may receive fresh instances of their generic type variables while enclosing parameter types retain their constraints. This permits flexible reuse without the specified type violations. The paper connects the construction to the ML checker already used in Edinburgh LCF.",
      "title": "Milner: polymorphic typing with a sound inference algorithm"
    },
    "record_id": "urn:uuid:788862ae-f8d1-4868-a679-a249ae454274",
    "version": 1,
    "source_ref": {
      "record_id": "urn:uuid:788862ae-f8d1-4868-a679-a249ae454274",
      "version": 1,
      "content_hash": "sha256:64a511d422bc221f3f1c60cc956598b2b5e115049996bf1b39b97c33adeff853"
    },
    "export_view": "wrs-public-editorial-view-1",
    "public_view_hash": "sha256:0ac6bd91316d3d8ae2833c7baf1d50656afdbc3cd069efc826c56039d09b210e"
  },
  "target": {
    "record_id": "urn:uuid:788862ae-f8d1-4868-a679-a249ae454274",
    "version": 1,
    "content_hash": "sha256:64a511d422bc221f3f1c60cc956598b2b5e115049996bf1b39b97c33adeff853"
  },
  "published_grade": {
    "profile": "wrs-published-grade-1",
    "edition": "2026-10-28.1",
    "id": "milner-type-polymorphism-soundness-1978",
    "entry_id": "milner-type-polymorphism-soundness-1978",
    "revision": 1,
    "title": "Milner: polymorphic typing with a sound inference algorithm",
    "context": "Programming languages and type systems",
    "track": "Programming languages and type systems",
    "band": "A",
    "modifier": null,
    "status": "PROVISIONAL_EDITORIAL",
    "assessed_on": "2026-10-03",
    "evidence_cutoff": "2026-10-03",
    "achievement_state": "SUPPORTED_SCOPED_RESULT",
    "what_changed": "Let-local polymorphism and constrained non-generic parameter variables are organized into a usable type discipline, a recursive inference algorithm and separate semantic/syntactic soundness theorems for Exp.",
    "scope": "Let-local polymorphism and constrained non-generic parameter variables are organized into a usable type discipline, a recursive inference algorithm and separate semantic/syntactic soundness theorems for Exp. The proof concerns Exp under a respecting environment and its defined type-error semantics. It does not prove termination, arbitrary program correctness or full imperative-ML safety. Completeness/most-general inference is conjectured here, not proved; the stateful polymorphic-list example exposes an extension failure. Hindley's principal schemes and Robinson's unification are inherited, and later Damas–Milner results remain separate.",
    "evidence_summary": "Source-linked, scoped account of the original work. The published scope states the scientific assumptions and remaining verification limits. WRS has not independently certified the full proof, experimental result or system benchmark.",
    "references": [
      {
        "title": "Robin Milner, A Theory of Type Polymorphism in Programming, Journal of Computer and System Sciences 17(3), 348–375 (1978), DOI 10.1016/0022-0000(78)90014-4",
        "url": "https://www.pure.ed.ac.uk/ws/files/15143545/1_s2.0_0022000078900144_main.pdf",
        "locator": "Original linked work. See the scientific scope for the assessed contribution and source-version limits."
      },
      {
        "title": "University of Edinburgh Research Explorer: A theory of type polymorphism in programming",
        "url": "https://www.research.ed.ac.uk/en/publications/a-theory-of-type-polymorphism-in-programming/",
        "locator": "Original linked work. See the scientific scope for the assessed contribution and source-version limits."
      }
    ],
    "roles": [
      {
        "who": "Robin Milner",
        "did": "Original source-listed scientific author of this scoped work; byline does not determine effort fractions.",
        "credit": "SCIENCE"
      }
    ],
    "target": {
      "record_id": "urn:uuid:788862ae-f8d1-4868-a679-a249ae454274",
      "version": 1,
      "content_hash": "sha256:64a511d422bc221f3f1c60cc956598b2b5e115049996bf1b39b97c33adeff853"
    },
    "scientific_correctness_certified": false,
    "independent_expert_calibration": false,
    "method": "PROPRIETARY",
    "points": "170000"
  },
  "canonical_agent_submission": false,
  "scientific_verification_awarded": false,
  "reader_guide": null,
  "reading_status": "SOURCE_LINKED_NOTE"
}
