[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-detail-85341-en":3,"doc-seo-85341-105":30,"detail-sidebar-cat-0-en-105":91},{"code":4,"msg":5,"data":6},0,"success",{"doc_id":7,"user_id":8,"nickname":9,"user_avatar":10,"doc_module":4,"category_id":11,"category_name":12,"doc_title":13,"doc_description":14,"doc_content":15,"file_id":16,"file_url":17,"file_type":18,"file_size":19,"view_count":20,"is_deleted":4,"is_public":21,"is_downloadable":21,"audit_status":21,"page_count":22,"language":23,"language_code":24,"site_id":25,"html_lang":24,"table_of_contents":26,"faqs":27,"seo_title":13,"seo_description":14,"update_tm":28,"read_time":29},85341,13056703020460,"Valentina","https://ap-avatar.wpscdn.com/avatar/be000253dac470eee5d?_k=1778207105932848923",8,"Research & Report","A Separation Logic for Parallel Time Complexity with Work and Span Credits","Parcas presents a concurrent separation logic for proving parallel time complexity bounds for fork-join programs, abstracting away machine specifics through two metrics: work (total operations) and span (longest chain of dependent steps). Work is tracked with split and recombined work credits, adapting time-credits techniques for sequential programs. Span requires a different approach: span credits are duplicated at fork points with task identifiers, and unused credits can be transferred across sequential compositions. The logic supports modular specifications for parallel primitives and is mechanized in Coq using Iris, with demonstrations on prefix sums, merge sort, and a lock-free stack variant.","arXiv :2607 . 1 1582v 1 [ cs .PL] 13 Jul 2026  \nA Separation Logic for Parallel Time Complexity with Work and Span Credits  \nALEXANDRE MOINE, New York University, USA SAM WESTRICK, New York University, USA JOSEPH TASSAROTTI∗ , New York University, USA  \nWe present Parcas, a concurrent separation logic for verifying the parallel time complexity of fork-join programs. In order to abstract from the specifics of the machine, time complexity for parallel programs is given in terms of two metrics: the work, measuring the total number of operations, and the span, measuring the longest chain of sequential dependencies. Together, these two metrics determine the running time on any number of processors. For proving bounds on the work and span, Parcas is equipped with work credits and span credits, logical devices that represent permissions to incur costs.  \nWork credits are a straightforward adaptation of time credits, a standard tool for bounding time complexity of sequential programs, and can be split additively between parallel tasks. Span credits, however, require a fundamentally different treatment. Indeed, the span of the parallel composition of two tasks is the maximum of the span of the two tasks. To account for this, we propose a rule for duplicating span credits at fork points, with each copy tagged by a logical task identifier that restricts which task may spend them. A transfer rule allows unused span credits to be forwarded across sequential compositions to subsequent tasks. The logic is expressive enough to give modular, higher-order specifications for common parallel primitives such as a parallel for loop and a tabulate function. We demonstrate Parcas on several case studies, including parallel prefix sums, parallel merge sort, and a variant ofTreiber’s lock-free stack that mixes concurrency with parallelism. All the presented results are mechanized in the Rocq prover using the Iris separation logic framework.  \nCCS Concepts: • Software and its engineering → Parallel programming languages; • Theory of  \ncomputation → Separation logic; Program verification.  \nAdditional Key Words and Phrases: parallelism, separation logic, time complexity ACM Reference Format:  \nAlexandre Moine, Sam Westrick, and Joseph Tassarotti. 2026. A Separation Logic for Parallel Time Complexity with Work and Span Credits. Proc. ACM Program. Lang. 10, ICFP, Article 281 (August 2026), 30 pages. [https:](https:)//[doi.org/10.1145/3828679](doi.org/10.1145/3828679)  \n1 Introduction  \nA variety of techniques exist for formally establishing bounds on the resource consumption of programs. One approach is to introduce substructural credits or potentials into a type system [36] or program logic [3], which must be spent at each point in which a program consumes a corresponding resource. The credits thereby represent a “budget” that upper bounds the resource consumption of a program. This approach has been used to reason about a range of different kinds of resources,  \n∗ Also affiliated with Amazon Web Services. This paper does not reflect the views of Amazon Web Services.  \nAuthors’ Contact Information: Alexandre Moine, New York University, New York, USA, [alexandre.moine@nyu.edu](alexandre.moine@nyu.edu); Sam Westrick, New York University, New York, USA, [shw8119@nyu.edu](shw8119@nyu.edu); Joseph Tassarotti, New York University, New York, USA, [jt4767@nyu.edu](jt4767@nyu.edu).  \nThis work is licensed under a Creative Commons Attribution 4 .0 International License.  \n© 2026 Copyright held by the owner/author(s) .  \nACM 2475-1421/2026/8-ART281  \n[https://doi.org/10.1145/3828679](https://doi.org/10.1145/3828679)  \nProc. ACM Program. Lang., Vol. 10, No. ICFP, Article 281 . Publication date: August 2026 .  \n281:2 Alexandre Moine, Sam Westrick, and Joseph Tassarotti  \nincluding running time [32, 18, 50], heap memory under both manual management [36] and garbage collection [53, 43, 46], and stack space [14, 15] .  \nThis paper introduces Parcas, a concurrent separati","cbCaijSKyml9lfLH","https://ap.wps.com/l/cbCaijSKyml9lfLH","pdf",818744,2,1,30,"English","en",105,"# Introduction\n## Work and span metrics for fork-join programs\n## Credits-based reasoning in Parcas","[{\"question\":\"What are the two metrics used to define parallel time complexity in Parcas?\",\"answer\":\"Parcas uses work and span. Work counts the total operations, while span measures the longest chain of sequential dependencies.\"},{\"question\":\"How does Parcas handle work credits for parallel tasks?\",\"answer\":\"Work credits can be split additively between parallel threads, and any unused portion can be recombined at the join point.\"},{\"question\":\"Why is span credits treatment different from work credits in fork-join programs?\",\"answer\":\"Because the span of the fork-join composition is the maximum span among children, additively splitting and naively combining span credits would be unsound. Parcas duplicates span credits at fork points with task identifiers and restricts which task may spend them, with transfer rules for unused credits.\"}]",1784202636,76,{"code":4,"msg":31,"data":32},"ok",{"site_id":25,"language":24,"slug":33,"title":13,"keywords":34,"description":14,"schema_data":35,"social_meta":86,"head_meta":88,"extra_data":90,"updated_unix":28},"a-separation-logic-for-parallel-time-complexity-with-work-and-span-credits","",{"@graph":36,"@context":85},[37,53,68],{"@type":38,"itemListElement":39},"BreadcrumbList",[40,44,47,50],{"item":41,"name":42,"@type":43,"position":21},"https://docshare.wps.com","Home","ListItem",{"item":45,"name":46,"@type":43,"position":20},"https://docshare.wps.com/document/","Document",{"item":48,"name":12,"@type":43,"position":49},"https://docshare.wps.com/document/research-report/",3,{"item":51,"name":13,"@type":43,"position":52},"https://docshare.wps.com/document/a-separation-logic-for-parallel-time-complexity-with-work-and-span-credits/85341/",4,{"url":51,"name":13,"@type":54,"author":55,"headline":13,"publisher":57,"fileFormat":60,"inLanguage":24,"description":14,"dateModified":61,"datePublished":62,"encodingFormat":60,"isAccessibleForFree":63,"interactionStatistic":64},"DigitalDocument",{"name":9,"@type":56},"Person",{"url":41,"name":58,"@type":59},"DocShare","Organization","application/pdf","2026-07-21","2026-07-16",true,{"@type":65,"interactionType":66,"userInteractionCount":20},"InteractionCounter",{"@type":67},"ViewAction",{"@type":69,"mainEntity":70},"FAQPage",[71,77,81],{"name":72,"@type":73,"acceptedAnswer":74},"What are the two metrics used to define parallel time complexity in Parcas?","Question",{"text":75,"@type":76},"Parcas uses work and span. Work counts the total operations, while span measures the longest chain of sequential dependencies.","Answer",{"name":78,"@type":73,"acceptedAnswer":79},"How does Parcas handle work credits for parallel tasks?",{"text":80,"@type":76},"Work credits can be split additively between parallel threads, and any unused portion can be recombined at the join point.",{"name":82,"@type":73,"acceptedAnswer":83},"Why is span credits treatment different from work credits in fork-join programs?",{"text":84,"@type":76},"Because the span of the fork-join composition is the maximum span among children, additively splitting and naively combining span credits would be unsound. Parcas duplicates span credits at fork points with task identifiers and restricts which task may spend them, with transfer rules for unused credits.","https://schema.org",{"og:url":51,"og:type":87,"og:title":13,"og:site_name":58,"og:description":14},"article",{"robots":89,"canonical":51},"index,follow",{"doc_id":7,"site_id":25},{"code":4,"msg":5,"data":92},[93,97,101,105,110,115,120,122,127,130,134],{"id":21,"doc_module":4,"doc_module_name":46,"category_name":94,"show_sort_weight":95,"slug":96},"Story & Novel",90,"story-novel",{"id":20,"doc_module":4,"doc_module_name":46,"category_name":98,"show_sort_weight":99,"slug":100},"Literature",80,"literature",{"id":52,"doc_module":4,"doc_module_name":46,"category_name":102,"show_sort_weight":103,"slug":104},"Exam",70,"exam",{"id":106,"doc_module":4,"doc_module_name":46,"category_name":107,"show_sort_weight":108,"slug":109},5,"Comic",60,"comic",{"id":111,"doc_module":4,"doc_module_name":46,"category_name":112,"show_sort_weight":113,"slug":114},6,"Technology",50,"technology",{"id":116,"doc_module":4,"doc_module_name":46,"category_name":117,"show_sort_weight":118,"slug":119},7,"Healthcare",40,"healthcare",{"id":11,"doc_module":4,"doc_module_name":46,"category_name":12,"show_sort_weight":22,"slug":121},"research-report",{"id":123,"doc_module":4,"doc_module_name":46,"category_name":124,"show_sort_weight":125,"slug":126},9,"Religion & Spirituality",20,"religion-spirituality",{"id":125,"doc_module":4,"doc_module_name":46,"category_name":128,"show_sort_weight":125,"slug":129},"World Cup","world-cup",{"id":131,"doc_module":4,"doc_module_name":46,"category_name":132,"show_sort_weight":131,"slug":133},10,"Lifestyle","lifestyle",{"id":135,"doc_module":4,"doc_module_name":46,"category_name":136,"show_sort_weight":106,"slug":137},19,"General","general"]