{"bundle_type":"pith_open_graph_bundle","bundle_version":"1.0","pith_number":"pith:2016:BUYDC2TR45IXRSPJJJEK7MLI4I","short_pith_number":"pith:BUYDC2TR","canonical_record":{"source":{"id":"1701.00161","kind":"arxiv","version":1},"metadata":{"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.PL","submitted_at":"2016-12-31T19:53:37Z","cross_cats_sorted":[],"title_canon_sha256":"7e7d8bfd570274915a1744ac57e78d6096fef2be9a6ecf2e93b34eb4d3d0db7c","abstract_canon_sha256":"aed8781af1e323ecd1412666c56009364016823e6f0a8809d8c0916288ee7e56"},"schema_version":"1.0"},"canonical_sha256":"0d30316a71e75178c9e94a48afb168e206b2204a3cdd9f3176f241018c079a6c","source":{"kind":"arxiv","id":"1701.00161","version":1},"source_aliases":[{"alias_kind":"arxiv","alias_value":"1701.00161","created_at":"2026-05-18T00:53:36Z"},{"alias_kind":"arxiv_version","alias_value":"1701.00161v1","created_at":"2026-05-18T00:53:36Z"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.1701.00161","created_at":"2026-05-18T00:53:36Z"},{"alias_kind":"pith_short_12","alias_value":"BUYDC2TR45IX","created_at":"2026-05-18T12:30:09Z"},{"alias_kind":"pith_short_16","alias_value":"BUYDC2TR45IXRSPJ","created_at":"2026-05-18T12:30:09Z"},{"alias_kind":"pith_short_8","alias_value":"BUYDC2TR","created_at":"2026-05-18T12:30:09Z"}],"events":[{"event_type":"record_created","subject_pith_number":"pith:2016:BUYDC2TR45IXRSPJJJEK7MLI4I","target":"record","payload":{"canonical_record":{"source":{"id":"1701.00161","kind":"arxiv","version":1},"metadata":{"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.PL","submitted_at":"2016-12-31T19:53:37Z","cross_cats_sorted":[],"title_canon_sha256":"7e7d8bfd570274915a1744ac57e78d6096fef2be9a6ecf2e93b34eb4d3d0db7c","abstract_canon_sha256":"aed8781af1e323ecd1412666c56009364016823e6f0a8809d8c0916288ee7e56"},"schema_version":"1.0"},"canonical_sha256":"0d30316a71e75178c9e94a48afb168e206b2204a3cdd9f3176f241018c079a6c","receipt":{"kind":"pith_receipt","key_id":"pith-v1-2026-05","algorithm":"ed25519","signed_at":"2026-05-18T00:53:36.206215Z","signature_b64":"78yiXoaSpqxwadGIBchPeut3R75p6f/+U/p2+tgl5khMi7cMYVLzmcMmpneOcA4vugKK/bOX+yPBN9F87ugSDQ==","signed_message":"canonical_sha256_bytes","builder_version":"pith-number-builder-2026-05-17-v1","receipt_version":"0.3","canonical_sha256":"0d30316a71e75178c9e94a48afb168e206b2204a3cdd9f3176f241018c079a6c","last_reissued_at":"2026-05-18T00:53:36.205732Z","signature_status":"signed_v1","first_computed_at":"2026-05-18T00:53:36.205732Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"source_kind":"arxiv","source_id":"1701.00161","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:53:36Z","supersedes":[],"prev_event":null,"signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"/BbxTwC9xBwmh/Z+i4ywzX5MzMBGLMRBHejHKtorP8mqPDeB0d5TRDCK5+VDPGJv37Xwqd+q5G7WYhAW+eJeBg==","signed_message":"open_graph_event_sha256_bytes","signed_at":"2026-05-30T08:40:50.789958Z"},"content_sha256":"29a2ca2f2f1c129f83302b21760bca88d076f338039724fd765a27b1e7c3fd26","schema_version":"1.0","event_id":"sha256:29a2ca2f2f1c129f83302b21760bca88d076f338039724fd765a27b1e7c3fd26"},{"event_type":"graph_snapshot","subject_pith_number":"pith:2016:BUYDC2TR45IXRSPJJJEK7MLI4I","target":"graph","payload":{"graph_snapshot":{"paper":{"title":"Abstracting Event-Driven Systems with Lifestate Rules","license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","headline":"","cross_cats":[],"primary_cat":"cs.PL","authors_text":"Aleksandar Chakarov, Bor-Yuh Evan Chang, Maxwell Russek, Sergio Mover, Shawn Meier","submitted_at":"2016-12-31T19:53:37Z","abstract_excerpt":"We present lifestate rules--an approach for abstracting event-driven object protocols. Developing applications against event-driven software frameworks is notoriously difficult. One reason why is that to create functioning applications, developers must know about and understand the complex protocols that abstract the internal behavior of the framework. Such protocols intertwine the proper registering of callbacks to receive control from the framework with appropriate application programming interface (API) calls to delegate back to it. Lifestate rules unify lifecycle and typestate constraints "},"claims":{"count":0,"items":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"1701.00161","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:53:36Z","supersedes":[],"prev_event":null,"signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"85tq0t3o7coM/jdhyq+vT7SOStFvhzXteinVMbnrUxVzGORpxBcuuuwtNDzIE0HACdD8X9eJA5zF9p6NBuRmBA==","signed_message":"open_graph_event_sha256_bytes","signed_at":"2026-05-30T08:40:50.790310Z"},"content_sha256":"8917c8094c74372dff2ae919eac9be8c47da4e8aac4abf9240b72019a1214223","schema_version":"1.0","event_id":"sha256:8917c8094c74372dff2ae919eac9be8c47da4e8aac4abf9240b72019a1214223"}],"timestamp_proofs":[],"mirror_hints":[{"mirror_type":"https","name":"Pith Resolver","base_url":"https://pith.science","bundle_url":"https://pith.science/pith/BUYDC2TR45IXRSPJJJEK7MLI4I/bundle.json","state_url":"https://pith.science/pith/BUYDC2TR45IXRSPJJJEK7MLI4I/state.json","well_known_bundle_url":"https://pith.science/.well-known/pith/BUYDC2TR45IXRSPJJJEK7MLI4I/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-05-30T08:40:50Z","links":{"resolver":"https://pith.science/pith/BUYDC2TR45IXRSPJJJEK7MLI4I","bundle":"https://pith.science/pith/BUYDC2TR45IXRSPJJJEK7MLI4I/bundle.json","state":"https://pith.science/pith/BUYDC2TR45IXRSPJJJEK7MLI4I/state.json","well_known_bundle":"https://pith.science/.well-known/pith/BUYDC2TR45IXRSPJJJEK7MLI4I/bundle.json"},"state":{"state_type":"pith_open_graph_state","state_version":"1.0","pith_number":"pith:2016:BUYDC2TR45IXRSPJJJEK7MLI4I","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":"aed8781af1e323ecd1412666c56009364016823e6f0a8809d8c0916288ee7e56","cross_cats_sorted":[],"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.PL","submitted_at":"2016-12-31T19:53:37Z","title_canon_sha256":"7e7d8bfd570274915a1744ac57e78d6096fef2be9a6ecf2e93b34eb4d3d0db7c"},"schema_version":"1.0","source":{"id":"1701.00161","kind":"arxiv","version":1}},"source_aliases":[{"alias_kind":"arxiv","alias_value":"1701.00161","created_at":"2026-05-18T00:53:36Z"},{"alias_kind":"arxiv_version","alias_value":"1701.00161v1","created_at":"2026-05-18T00:53:36Z"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.1701.00161","created_at":"2026-05-18T00:53:36Z"},{"alias_kind":"pith_short_12","alias_value":"BUYDC2TR45IX","created_at":"2026-05-18T12:30:09Z"},{"alias_kind":"pith_short_16","alias_value":"BUYDC2TR45IXRSPJ","created_at":"2026-05-18T12:30:09Z"},{"alias_kind":"pith_short_8","alias_value":"BUYDC2TR","created_at":"2026-05-18T12:30:09Z"}],"graph_snapshots":[{"event_id":"sha256:8917c8094c74372dff2ae919eac9be8c47da4e8aac4abf9240b72019a1214223","target":"graph","created_at":"2026-05-18T00:53:36Z","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":"We present lifestate rules--an approach for abstracting event-driven object protocols. Developing applications against event-driven software frameworks is notoriously difficult. One reason why is that to create functioning applications, developers must know about and understand the complex protocols that abstract the internal behavior of the framework. Such protocols intertwine the proper registering of callbacks to receive control from the framework with appropriate application programming interface (API) calls to delegate back to it. Lifestate rules unify lifecycle and typestate constraints ","authors_text":"Aleksandar Chakarov, Bor-Yuh Evan Chang, Maxwell Russek, Sergio Mover, Shawn Meier","cross_cats":[],"headline":"","license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.PL","submitted_at":"2016-12-31T19:53:37Z","title":"Abstracting Event-Driven Systems with Lifestate Rules"},"references":{"count":0,"internal_anchors":0,"resolved_work":0,"sample":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"1701.00161","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:29a2ca2f2f1c129f83302b21760bca88d076f338039724fd765a27b1e7c3fd26","target":"record","created_at":"2026-05-18T00:53:36Z","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":"aed8781af1e323ecd1412666c56009364016823e6f0a8809d8c0916288ee7e56","cross_cats_sorted":[],"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.PL","submitted_at":"2016-12-31T19:53:37Z","title_canon_sha256":"7e7d8bfd570274915a1744ac57e78d6096fef2be9a6ecf2e93b34eb4d3d0db7c"},"schema_version":"1.0","source":{"id":"1701.00161","kind":"arxiv","version":1}},"canonical_sha256":"0d30316a71e75178c9e94a48afb168e206b2204a3cdd9f3176f241018c079a6c","receipt":{"algorithm":"ed25519","builder_version":"pith-number-builder-2026-05-17-v1","canonical_sha256":"0d30316a71e75178c9e94a48afb168e206b2204a3cdd9f3176f241018c079a6c","first_computed_at":"2026-05-18T00:53:36.205732Z","key_id":"pith-v1-2026-05","kind":"pith_receipt","last_reissued_at":"2026-05-18T00:53:36.205732Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","receipt_version":"0.3","signature_b64":"78yiXoaSpqxwadGIBchPeut3R75p6f/+U/p2+tgl5khMi7cMYVLzmcMmpneOcA4vugKK/bOX+yPBN9F87ugSDQ==","signature_status":"signed_v1","signed_at":"2026-05-18T00:53:36.206215Z","signed_message":"canonical_sha256_bytes"},"source_id":"1701.00161","source_kind":"arxiv","source_version":1}}},"equivocations":[],"invalid_events":[],"applied_event_ids":["sha256:29a2ca2f2f1c129f83302b21760bca88d076f338039724fd765a27b1e7c3fd26","sha256:8917c8094c74372dff2ae919eac9be8c47da4e8aac4abf9240b72019a1214223"],"state_sha256":"3a43874f6a814b6d37ad0f253b59aa2e3099c0737e7fc13fad107b64252167b2"},"bundle_signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"VYp0ZetmrGZA/LIbGoathBm1/EiUjaR1EwQBNCGk6ofj8tEfaBrCFD4mChDMn4Eo1huR46hHb7ntd68jOa0/DA==","signed_message":"bundle_sha256_bytes","signed_at":"2026-05-30T08:40:50.792382Z","bundle_sha256":"de3cef8eac6825f55a945d25ca6e59c7677d72c197f310087f390a3e139e9ff4"}}