{"record_type":"pith_number_record","schema_url":"https://pith.science/schemas/pith-number/v1.json","pith_number":"pith:2013:OD6CQUDKOFUGK2HSX6NJUHV7CK","short_pith_number":"pith:OD6CQUDK","schema_version":"1.0","canonical_sha256":"70fc28506a71686568f2bf9a9a1ebf12ad338fa0caec9c331edde362d618bdbc","source":{"kind":"arxiv","id":"1312.2696","version":1},"attestation_state":"computed","paper":{"title":"Structural Induction Principles for Functional Programmers","license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","headline":"","cross_cats":["cs.LO"],"primary_cat":"cs.PL","authors_text":"James Caldwell (University of Wyoming)","submitted_at":"2013-12-10T08:00:53Z","abstract_excerpt":"User defined recursive types are a fundamental feature of modern functional programming languages like Haskell, Clean, and the ML family of languages.  Properties of programs defined by recursion on the structure of recursive types are generally proved by structural induction on the type. It is well known in the theorem proving community how to generate structural induction principles from data type declarations. These methods deserve to be better know in the functional programming community. Existing functional programming textbooks gloss over this material. And yet, if functional programmers"},"verification_status":{"content_addressed":true,"pith_receipt":true,"author_attested":false,"weak_author_claims":0,"strong_author_claims":0,"externally_anchored":false,"storage_verified":false,"citation_signatures":0,"replication_records":0,"graph_snapshot":true,"references_resolved":false,"formal_links_present":false},"canonical_record":{"source":{"id":"1312.2696","kind":"arxiv","version":1},"metadata":{"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.PL","submitted_at":"2013-12-10T08:00:53Z","cross_cats_sorted":["cs.LO"],"title_canon_sha256":"1dbd6a3ff869f4346ee8fe504b75b3a606b4c62083abecab640aecb226de2126","abstract_canon_sha256":"52cc5246394ad667100cda08277d32e3bf85706aa3ce21ad2af510e302f60696"},"schema_version":"1.0"},"receipt":{"kind":"pith_receipt","key_id":"pith-v1-2026-05","algorithm":"ed25519","signed_at":"2026-05-18T03:05:09.119924Z","signature_b64":"gt9mm8L695n6tCkL+SPLGrxtogyeWORf8fy7Qj9qBIQN+4c+e0rir7j75oiOGrAfC1bD0vmI8P8AKh6iPyBeAQ==","signed_message":"canonical_sha256_bytes","builder_version":"pith-number-builder-2026-05-17-v1","receipt_version":"0.3","canonical_sha256":"70fc28506a71686568f2bf9a9a1ebf12ad338fa0caec9c331edde362d618bdbc","last_reissued_at":"2026-05-18T03:05:09.119257Z","signature_status":"signed_v1","first_computed_at":"2026-05-18T03:05:09.119257Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"graph_snapshot":{"paper":{"title":"Structural Induction Principles for Functional Programmers","license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","headline":"","cross_cats":["cs.LO"],"primary_cat":"cs.PL","authors_text":"James Caldwell (University of Wyoming)","submitted_at":"2013-12-10T08:00:53Z","abstract_excerpt":"User defined recursive types are a fundamental feature of modern functional programming languages like Haskell, Clean, and the ML family of languages.  Properties of programs defined by recursion on the structure of recursive types are generally proved by structural induction on the type. It is well known in the theorem proving community how to generate structural induction principles from data type declarations. These methods deserve to be better know in the functional programming community. Existing functional programming textbooks gloss over this material. And yet, if functional programmers"},"claims":{"count":0,"items":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"1312.2696","kind":"arxiv","version":1},"verdict":{"id":null,"model_set":{},"created_at":null,"strongest_claim":"","one_line_summary":"","pipeline_version":null,"weakest_assumption":"","pith_extraction_headline":""},"references":{"count":0,"sample":[],"resolved_work":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","internal_anchors":0},"formal_canon":{"evidence_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"author_claims":{"count":0,"strong_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"builder_version":"pith-number-builder-2026-05-17-v1"},"aliases":[{"alias_kind":"arxiv","alias_value":"1312.2696","created_at":"2026-05-18T03:05:09.119376+00:00"},{"alias_kind":"arxiv_version","alias_value":"1312.2696v1","created_at":"2026-05-18T03:05:09.119376+00:00"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.1312.2696","created_at":"2026-05-18T03:05:09.119376+00:00"},{"alias_kind":"pith_short_12","alias_value":"OD6CQUDKOFUG","created_at":"2026-05-18T12:27:54.935989+00:00"},{"alias_kind":"pith_short_16","alias_value":"OD6CQUDKOFUGK2HS","created_at":"2026-05-18T12:27:54.935989+00:00"},{"alias_kind":"pith_short_8","alias_value":"OD6CQUDK","created_at":"2026-05-18T12:27:54.935989+00:00"}],"events":[],"event_summary":{},"paper_claims":[],"inbound_citations":{"count":0,"internal_anchor_count":0,"sample":[]},"formal_canon":{"evidence_count":0,"sample":[],"anchors":[]},"links":{"html":"https://pith.science/pith/OD6CQUDKOFUGK2HSX6NJUHV7CK","json":"https://pith.science/pith/OD6CQUDKOFUGK2HSX6NJUHV7CK.json","graph_json":"https://pith.science/api/pith-number/OD6CQUDKOFUGK2HSX6NJUHV7CK/graph.json","events_json":"https://pith.science/api/pith-number/OD6CQUDKOFUGK2HSX6NJUHV7CK/events.json","paper":"https://pith.science/paper/OD6CQUDK"},"agent_actions":{"view_html":"https://pith.science/pith/OD6CQUDKOFUGK2HSX6NJUHV7CK","download_json":"https://pith.science/pith/OD6CQUDKOFUGK2HSX6NJUHV7CK.json","view_paper":"https://pith.science/paper/OD6CQUDK","resolve_alias":"https://pith.science/api/pith-number/resolve?arxiv=1312.2696&json=true","fetch_graph":"https://pith.science/api/pith-number/OD6CQUDKOFUGK2HSX6NJUHV7CK/graph.json","fetch_events":"https://pith.science/api/pith-number/OD6CQUDKOFUGK2HSX6NJUHV7CK/events.json","actions":{"anchor_timestamp":"https://pith.science/pith/OD6CQUDKOFUGK2HSX6NJUHV7CK/action/timestamp_anchor","attest_storage":"https://pith.science/pith/OD6CQUDKOFUGK2HSX6NJUHV7CK/action/storage_attestation","attest_author":"https://pith.science/pith/OD6CQUDKOFUGK2HSX6NJUHV7CK/action/author_attestation","sign_citation":"https://pith.science/pith/OD6CQUDKOFUGK2HSX6NJUHV7CK/action/citation_signature","submit_replication":"https://pith.science/pith/OD6CQUDKOFUGK2HSX6NJUHV7CK/action/replication_record"}},"created_at":"2026-05-18T03:05:09.119376+00:00","updated_at":"2026-05-18T03:05:09.119376+00:00"}