{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2608-05234","title":"PPDL: LLM-Based Flows as Probabilistic Programs","arxiv_id":"2608.05234","date":"2026-08-05","proceeding":"ICML","authors":["Louis Mandel","Guillaume Baudart","Mandana Vaziri","Martin Hirzel"],"abstract":"Building reliable applications that leverage large language models (LLMs) remains a significant challenge. While LLMs offer impressive capabilities across diverse tasks, their outputs often lack accuracy and provide no clear measure of confidence. This uncertainty compounds in flows of multiple calls to LLMs and other tools, making it difficult for developers and end-users to trust the results. This paper introduces a probabilistic language for programming LLM-based flows. It enables developers to quantify and propagate uncertainty throughout the application's flow, and experiment with different inference scaling techniques without adding a single line of code beyond the flow's logic. We present an experimental study to demonstrate this capability, and a case study building a theorem proving agent for the Rocq theorem prover.","url_abs":"https://arxiv.org/abs/2608.05234","url_pdf":"https://arxiv.org/pdf/2608.05234","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2608.05234","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2608.05234"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/IBM/prompt-declaration-language","reach":null}],"summary":{"ran":5,"unverified":1},"by_repo_kind":{"found_in_text":{"samples":6,"ran":5,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"1aa1ba74b802c978","entry":"dump_yaml","repo":"IBM/prompt-declaration-language","repo_kind":"found_in_text","path":"src/pdl/pdl_dumper.py","file_url":"https://github.com/IBM/prompt-declaration-language/blob/HEAD/src/pdl/pdl_dumper.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1aa1ba74b802c978"}},{"code_sha256_prefix":"2bfc35e0cf898db4","entry":"dumps_json","repo":"IBM/prompt-declaration-language","repo_kind":"found_in_text","path":"src/pdl/pdl_dumper.py","file_url":"https://github.com/IBM/prompt-declaration-language/blob/HEAD/src/pdl/pdl_dumper.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2bfc35e0cf898db4"}},{"code_sha256_prefix":"915529b25fb5a14e","entry":"lazy_apply","repo":"IBM/prompt-declaration-language","repo_kind":"found_in_text","path":"src/pdl/pdl_lazy.py","file_url":"https://github.com/IBM/prompt-declaration-language/blob/HEAD/src/pdl/pdl_lazy.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"915529b25fb5a14e"}},{"code_sha256_prefix":"5d2d1424c5eb4549","entry":"lazy_apply2","repo":"IBM/prompt-declaration-language","repo_kind":"found_in_text","path":"src/pdl/pdl_lazy.py","file_url":"https://github.com/IBM/prompt-declaration-language/blob/HEAD/src/pdl/pdl_lazy.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5d2d1424c5eb4549"}},{"code_sha256_prefix":"1e1119d41444e715","entry":"repr_str","repo":"IBM/prompt-declaration-language","repo_kind":"found_in_text","path":"src/pdl/pdl_dumper.py","file_url":"https://github.com/IBM/prompt-declaration-language/blob/HEAD/src/pdl/pdl_dumper.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1e1119d41444e715"}},{"code_sha256_prefix":"47bcbe278cdc5da4","entry":"resample","repo":"IBM/prompt-declaration-language","repo_kind":"found_in_text","path":"src/pdl/pdl_inference.py","file_url":"https://github.com/IBM/prompt-declaration-language/blob/HEAD/src/pdl/pdl_inference.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"47bcbe278cdc5da4"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}