{"bundle_type":"pith_open_graph_bundle","bundle_version":"1.0","pith_number":"pith:2018:VCOZVOMR5UX6WVEGBY6MZO7UZQ","short_pith_number":"pith:VCOZVOMR","canonical_record":{"source":{"id":"1806.03541","kind":"arxiv","version":1},"metadata":{"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.PL","submitted_at":"2018-06-09T20:57:09Z","cross_cats_sorted":[],"title_canon_sha256":"e3931c5c3a788761709bfe0c3c9b62405e2e19513cf48cabba82417e712f12fd","abstract_canon_sha256":"246813c3ff516f5f065133221f994d471775fe1dd96245d7d9975ae0467e56b5"},"schema_version":"1.0"},"canonical_sha256":"a89d9ab991ed2feb54860e3cccbbf4cc1f25ac2d1267371eb8a66bd70b5f6122","source":{"kind":"arxiv","id":"1806.03541","version":1},"source_aliases":[{"alias_kind":"arxiv","alias_value":"1806.03541","created_at":"2026-05-18T00:13:43Z"},{"alias_kind":"arxiv_version","alias_value":"1806.03541v1","created_at":"2026-05-18T00:13:43Z"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.1806.03541","created_at":"2026-05-18T00:13:43Z"},{"alias_kind":"pith_short_12","alias_value":"VCOZVOMR5UX6","created_at":"2026-05-18T12:32:59Z"},{"alias_kind":"pith_short_16","alias_value":"VCOZVOMR5UX6WVEG","created_at":"2026-05-18T12:32:59Z"},{"alias_kind":"pith_short_8","alias_value":"VCOZVOMR","created_at":"2026-05-18T12:32:59Z"}],"events":[{"event_type":"record_created","subject_pith_number":"pith:2018:VCOZVOMR5UX6WVEGBY6MZO7UZQ","target":"record","payload":{"canonical_record":{"source":{"id":"1806.03541","kind":"arxiv","version":1},"metadata":{"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.PL","submitted_at":"2018-06-09T20:57:09Z","cross_cats_sorted":[],"title_canon_sha256":"e3931c5c3a788761709bfe0c3c9b62405e2e19513cf48cabba82417e712f12fd","abstract_canon_sha256":"246813c3ff516f5f065133221f994d471775fe1dd96245d7d9975ae0467e56b5"},"schema_version":"1.0"},"canonical_sha256":"a89d9ab991ed2feb54860e3cccbbf4cc1f25ac2d1267371eb8a66bd70b5f6122","receipt":{"kind":"pith_receipt","key_id":"pith-v1-2026-05","algorithm":"ed25519","signed_at":"2026-05-18T00:13:43.081734Z","signature_b64":"bar2RWDM0W/3a0/UB6KcuiDveLRAgoubLRAgfgW2c8J/mjVmwczmKNowgVxk1K/uD9PUXUjHaWqhGgIzpmSKDg==","signed_message":"canonical_sha256_bytes","builder_version":"pith-number-builder-2026-05-17-v1","receipt_version":"0.3","canonical_sha256":"a89d9ab991ed2feb54860e3cccbbf4cc1f25ac2d1267371eb8a66bd70b5f6122","last_reissued_at":"2026-05-18T00:13:43.081173Z","signature_status":"signed_v1","first_computed_at":"2026-05-18T00:13:43.081173Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"source_kind":"arxiv","source_id":"1806.03541","source_version":1,"attestation_state":"computed"},"signer":{"signer_id":"pith.science","signer_type":"pith_registry","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"created_at":"2026-05-18T00:13:43Z","supersedes":[],"prev_event":null,"signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"lqR0AzQRVJpqG2SXlaAY9MVhM0hyFiBMbTBrtisZTQcRj6vjMYyhzCm6gCgO5LOF/ERpYHMa7NaqnG3LereGAQ==","signed_message":"open_graph_event_sha256_bytes","signed_at":"2026-06-27T07:10:54.781052Z"},"content_sha256":"6fce3ae5fd20b8300cd13f2eff911d86fc2616c338eebfeb25b05028b30f645e","schema_version":"1.0","event_id":"sha256:6fce3ae5fd20b8300cd13f2eff911d86fc2616c338eebfeb25b05028b30f645e"},{"event_type":"graph_snapshot","subject_pith_number":"pith:2018:VCOZVOMR5UX6WVEGBY6MZO7UZQ","target":"graph","payload":{"graph_snapshot":{"paper":{"title":"Functional Pearl: Theorem Proving for All (Equational Reasoning in Liquid Haskell)","license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","headline":"","cross_cats":[],"primary_cat":"cs.PL","authors_text":"David Van Horn, Graham Hutton, Joachim Breitner, Niki Vazou, Will Kunkel","submitted_at":"2018-06-09T20:57:09Z","abstract_excerpt":"Equational reasoning is one of the key features of pure functional languages such as Haskell. To date, however, such reasoning always took place externally to Haskell, either manually on paper, or mechanised in a theorem prover. This article shows how equational reasoning can be performed directly and seamlessly within Haskell itself, and be checked using Liquid Haskell. In particular, language learners --- to whom external theorem provers are out of reach --- can benefit from having their proofs mechanically checked. Concretely, we show how the equational proofs and derivations from Graham's "},"claims":{"count":0,"items":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"1806.03541","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"},"verdict_id":null},"signer":{"signer_id":"pith.science","signer_type":"pith_registry","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"created_at":"2026-05-18T00:13:43Z","supersedes":[],"prev_event":null,"signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"mBdxvsq9/IJAqAlOxhLrXUZa9QUXEwPYxLQTEzczrByOppseoLiyPlmnvwEIr4NyF1LurwXs9dWXSSByhXM2DQ==","signed_message":"open_graph_event_sha256_bytes","signed_at":"2026-06-27T07:10:54.781459Z"},"content_sha256":"a0f99dade2873bce3891ed2ab076a46c0a11901ab87f4137d360922762c8a150","schema_version":"1.0","event_id":"sha256:a0f99dade2873bce3891ed2ab076a46c0a11901ab87f4137d360922762c8a150"}],"timestamp_proofs":[],"mirror_hints":[{"mirror_type":"https","name":"Pith Resolver","base_url":"https://pith.science","bundle_url":"https://pith.science/pith/VCOZVOMR5UX6WVEGBY6MZO7UZQ/bundle.json","state_url":"https://pith.science/pith/VCOZVOMR5UX6WVEGBY6MZO7UZQ/state.json","well_known_bundle_url":"https://pith.science/.well-known/pith/VCOZVOMR5UX6WVEGBY6MZO7UZQ/bundle.json","status":"primary"}],"public_keys":[{"key_id":"pith-v1-2026-05","algorithm":"ed25519","format":"raw","public_key_b64":"stVStoiQhXFxp4s2pdzPNoqVNBMojDU/fJ2db5S3CbM=","public_key_hex":"b2d552b68890857171a78b36a5dccf368a953413288c353f7c9d9d6f94b709b3","fingerprint_sha256_b32_first128bits":"RVFV5Z2OI2J3ZUO7ERDEBCYNKS","fingerprint_sha256_hex":"8d4b5ee74e4693bcd1df2446408b0d54","rotates_at":null,"url":"https://pith.science/pith-signing-key.json","notes":"Pith uses this Ed25519 key to sign canonical record SHA-256 digests. Verify with: ed25519_verify(public_key, message=canonical_sha256_bytes, signature=base64decode(signature_b64))."}],"merge_version":"pith-open-graph-merge-v1","built_at":"2026-06-27T07:10:54Z","links":{"resolver":"https://pith.science/pith/VCOZVOMR5UX6WVEGBY6MZO7UZQ","bundle":"https://pith.science/pith/VCOZVOMR5UX6WVEGBY6MZO7UZQ/bundle.json","state":"https://pith.science/pith/VCOZVOMR5UX6WVEGBY6MZO7UZQ/state.json","well_known_bundle":"https://pith.science/.well-known/pith/VCOZVOMR5UX6WVEGBY6MZO7UZQ/bundle.json"},"state":{"state_type":"pith_open_graph_state","state_version":"1.0","pith_number":"pith:2018:VCOZVOMR5UX6WVEGBY6MZO7UZQ","merge_version":"pith-open-graph-merge-v1","event_count":2,"valid_event_count":2,"invalid_event_count":0,"equivocation_count":0,"current":{"canonical_record":{"metadata":{"abstract_canon_sha256":"246813c3ff516f5f065133221f994d471775fe1dd96245d7d9975ae0467e56b5","cross_cats_sorted":[],"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.PL","submitted_at":"2018-06-09T20:57:09Z","title_canon_sha256":"e3931c5c3a788761709bfe0c3c9b62405e2e19513cf48cabba82417e712f12fd"},"schema_version":"1.0","source":{"id":"1806.03541","kind":"arxiv","version":1}},"source_aliases":[{"alias_kind":"arxiv","alias_value":"1806.03541","created_at":"2026-05-18T00:13:43Z"},{"alias_kind":"arxiv_version","alias_value":"1806.03541v1","created_at":"2026-05-18T00:13:43Z"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.1806.03541","created_at":"2026-05-18T00:13:43Z"},{"alias_kind":"pith_short_12","alias_value":"VCOZVOMR5UX6","created_at":"2026-05-18T12:32:59Z"},{"alias_kind":"pith_short_16","alias_value":"VCOZVOMR5UX6WVEG","created_at":"2026-05-18T12:32:59Z"},{"alias_kind":"pith_short_8","alias_value":"VCOZVOMR","created_at":"2026-05-18T12:32:59Z"}],"graph_snapshots":[{"event_id":"sha256:a0f99dade2873bce3891ed2ab076a46c0a11901ab87f4137d360922762c8a150","target":"graph","created_at":"2026-05-18T00:13:43Z","signer":{"key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signer_id":"pith.science","signer_type":"pith_registry"},"payload":{"graph_snapshot":{"author_claims":{"count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","strong_count":0},"builder_version":"pith-number-builder-2026-05-17-v1","claims":{"count":0,"items":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"formal_canon":{"evidence_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"paper":{"abstract_excerpt":"Equational reasoning is one of the key features of pure functional languages such as Haskell. To date, however, such reasoning always took place externally to Haskell, either manually on paper, or mechanised in a theorem prover. This article shows how equational reasoning can be performed directly and seamlessly within Haskell itself, and be checked using Liquid Haskell. In particular, language learners --- to whom external theorem provers are out of reach --- can benefit from having their proofs mechanically checked. Concretely, we show how the equational proofs and derivations from Graham's ","authors_text":"David Van Horn, Graham Hutton, Joachim Breitner, Niki Vazou, Will Kunkel","cross_cats":[],"headline":"","license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.PL","submitted_at":"2018-06-09T20:57:09Z","title":"Functional Pearl: Theorem Proving for All (Equational Reasoning in Liquid Haskell)"},"references":{"count":0,"internal_anchors":0,"resolved_work":0,"sample":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"1806.03541","kind":"arxiv","version":1},"verdict":{"created_at":null,"id":null,"model_set":{},"one_line_summary":"","pipeline_version":null,"pith_extraction_headline":"","strongest_claim":"","weakest_assumption":""}},"verdict_id":null}}],"author_attestations":[],"timestamp_anchors":[],"storage_attestations":[],"citation_signatures":[],"replication_records":[],"corrections":[],"mirror_hints":[],"record_created":{"event_id":"sha256:6fce3ae5fd20b8300cd13f2eff911d86fc2616c338eebfeb25b05028b30f645e","target":"record","created_at":"2026-05-18T00:13:43Z","signer":{"key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signer_id":"pith.science","signer_type":"pith_registry"},"payload":{"attestation_state":"computed","canonical_record":{"metadata":{"abstract_canon_sha256":"246813c3ff516f5f065133221f994d471775fe1dd96245d7d9975ae0467e56b5","cross_cats_sorted":[],"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.PL","submitted_at":"2018-06-09T20:57:09Z","title_canon_sha256":"e3931c5c3a788761709bfe0c3c9b62405e2e19513cf48cabba82417e712f12fd"},"schema_version":"1.0","source":{"id":"1806.03541","kind":"arxiv","version":1}},"canonical_sha256":"a89d9ab991ed2feb54860e3cccbbf4cc1f25ac2d1267371eb8a66bd70b5f6122","receipt":{"algorithm":"ed25519","builder_version":"pith-number-builder-2026-05-17-v1","canonical_sha256":"a89d9ab991ed2feb54860e3cccbbf4cc1f25ac2d1267371eb8a66bd70b5f6122","first_computed_at":"2026-05-18T00:13:43.081173Z","key_id":"pith-v1-2026-05","kind":"pith_receipt","last_reissued_at":"2026-05-18T00:13:43.081173Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","receipt_version":"0.3","signature_b64":"bar2RWDM0W/3a0/UB6KcuiDveLRAgoubLRAgfgW2c8J/mjVmwczmKNowgVxk1K/uD9PUXUjHaWqhGgIzpmSKDg==","signature_status":"signed_v1","signed_at":"2026-05-18T00:13:43.081734Z","signed_message":"canonical_sha256_bytes"},"source_id":"1806.03541","source_kind":"arxiv","source_version":1}}},"equivocations":[],"invalid_events":[],"applied_event_ids":["sha256:6fce3ae5fd20b8300cd13f2eff911d86fc2616c338eebfeb25b05028b30f645e","sha256:a0f99dade2873bce3891ed2ab076a46c0a11901ab87f4137d360922762c8a150"],"state_sha256":"25babd3099d8c8480476892fa62e2a48ecd9665809fb4a7ef5cdd3e7018bba8b"},"bundle_signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"hhXMQbwfGBucL2OoaBMtHhrV4RVtdKNolgiADi6v1ghQKXlkQwUnO47PnaQ1n/e2i9Ceo9YUyHWkJBEWBBToDw==","signed_message":"bundle_sha256_bytes","signed_at":"2026-06-27T07:10:54.783480Z","bundle_sha256":"80a1d237501304c95dfcd153780d24536de33c89132ec24aec4efcdac2175fa1"}}